본문 바로가기

모각코10

[모각코 10회차] 네이버 지역검색 API 활용 맛집 리스트 만들기 목표: 네이버 지역검색 API 활용 맛집 리스트 만들기저장할 Entity 생성 @NoArgsConstructor @AllArgsConstructor @Data public class WishListEntity extends MemoryDbEntity { private String title; // 음식명, 장소명 private String category; // 카테고리 private String address; // 주소 private String roadAddress; // 도로명 private String homePageLink; // 홈페이지 주소 private String imageLink; // 음식, 가게 이미지 주소 private boolean isVisit; // 방문여부 private .. 2022. 9. 8.
[모각코 9회차] 상품관리 REST API 클론 프로젝트(feat.React) 목표: 상품관리 REST API 클론 프로젝트상품추가App.js const [items, setItems] = useState([]); //기본상태 const handleAddClicked = (id) => { //같은 아이디 찾기 const product = products.find((v) => v.id === id); const found = items.find((v) => v.id === id); const updatedItems = //상품확인...모든속성 복사, 개수 +1/없으면 기존 아이템 반환 //기존것 복사 + 새로운 상품 추가 found ? items.map((v) => (v.id === id ? { ...v, count: v.count + 1 } : v)) : [ ...items, { .. 2022. 8. 30.
[모각코 8회차] Spring Security with JWT 목표: 시큐리티 파트2Stateful과 StatelessStateless기반의 JWT에 대해 알아보기 전에 Stateful과 Stateless방식의 차이점을 알아보자 Stateful Session 사용 Session Cluster필요(수평확장 어렵) 단일 사용자의 다중 로그인 컨트롤, 사용자 유효성 체크, 강제 로그아웃 기능 구현 쉬움 Stateless Session 사용 x, 근데 서버는 사용자를 식별할 수 있어야 함 Session Cluster필요x(수평확장 쉬움) 단일 사용자의 다중 로그인 컨트롤, 사용자 유효성 체크, 강제 로그아웃 기능 구현 어려움 JWT (Json Web Token) Stateless 상태를 유지하며, 서버에서 사용자를 식별할 수 있는 수단을 제공 서버에서 사용자 인증되면 JW.. 2022. 8. 25.
[모각코 7회차] Spring Security Internals 목표: 스프링 시큐리티 파트1Thread Per Request 모델과 ThreadLocal Thread Per Request 모델 병렬처리 기법 중 하나 WAS는 ThradPool을 생성하는데 HTTP 요청이 들어오면 Queue에 적재되고, ThreadPool 내의 특정 Thread가 Queue에서 요청을 가져와 처리 WAS의 최대 동시 처리 HTTP 요청의 갯수는 ThreadPool의 갯수와 같음 ThreadLocal 동일 Thread 내에서는 언제든 읽고 쓸 수 있는 변수 final static ThreadLocal threadLocalValue = new ThreadLocal(); public static void main(String[] args) { System.out.println(getCur.. 2022. 8. 19.
[모각코 6회차] 주문관리 API 목표: 주문 API 만들기 실습 ERD Entity Order Entity는 아이디, 주문시간, 주문상태, 메모, 회원, 주문아이템을 필드로 갖으며 작성자와 생성시간을 제공하는 BaseEntity를 상속 받음 Order 엔티티에서 setMember와 addOrderItem 연관관계 편의 메서드를 제공 오더와 멤버는 다대일 관계 오더와 오더아이템은 일대다 관계 @Entity @Table(name = "orders") @Getter @Setter public class Order extends BaseEntity { @Id @Column(name = "id") private String uuid; @Column(name = "order_datetime", columnDefinition = "TIMESTAMP.. 2022. 8. 11.
[모각코 5회차] SPA와 CORS 목표: spa와 cors 정리Single Page Application화면 렌더링 서버에서 처리하지 않고 브라우저에서 처리 일반: 모든 페이지 다시 렌더링 사용자 세션 서버에서 관리 쿠키에 담아서 보냄 정보 추가 할 때마다 세션 커짐 요청받는 url에 따른 리소스 반환 웹 어플리케이션 서버 spa: dom 조작해서 특정 영역 렌더링 사용자 데이터 모델 일부 자바스크립트로 관리 로컬스토리지에 담아둠 필요할 때마다 데이터 요청 html5 히스토리 api 이용가능 서버는 뷰를 렌더링하지 않게 됨 -> json 웹 서버 ResponseEntity 보냄 @ResponseBody @GetMapping("/api/v1/customers/{customerId}") public ResponseEntity findCust.. 2022. 8. 4.