모각코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. [모각코 4회차] 스프링 AOP와 트랜잭션 목표: 스프링 Aop와 트랜잭션 정리스프링 AOP와 트랜잭션AOP(Aspect Orient Programming)관점 지향 프로그래밍공통 관심사(cross cutting concern)핵심기능과 부가기능을 분리비즈니스 로직에 핵심적이지 않은 동작 추가용어 타겟: aop 적용 대상, 핵심 기능 담고 있는 모듈 조인 포인트: aop 적용 위치, 타겟 객체가 구현한 인터페이스의 메서드 포인트 컷: 어디에 aop 적용할지 표현한 것(표현식) @Pointcut("execution(public * com.example.order..Service.(..))") 애스펙트: 어드바이스 + 포인트 컷, Spring은 Aspect를 빈으로 등록 어드바이스(메서드) 타겟의 특정 조인 포인트에 제공할 부가기능(aop) @Bef.. 2022. 7. 29. [모각코 3회차] logback 설정 목표: logback 설정 정리로깅시스템을 작동할 때 시스템의 작동 상태의 기록과 보존, 이용자의 습성 조사 및 시스 템 동작의 분석 등을 하기 위해 작동중의 각종 정보를 기록해둘 필요가 있다. 이 기록 을 만드는 것System.out.println: 상황별 구분 불가, 저장불가, 대량로그 시스템 성능문제로깅 framework: Log4J, Logback, SLF4JSLF4JLogging Framework들을 추상화해 놓은 것Facade Pattern을 이용Facade Pattern: 서브시스템을 거대한 클래스로 만들어 감싸서 편리한 인터페이스를 제공바인딩 모듈(로깅 프레임워크 연결)을 통해 처리Log Leveltracedebuginfowarnerror로거 생성: 로거 팩토리, 클래스 레벨에서 //사용 .. 2022. 7. 22. 이전 1 2 다음