본문 바로가기

❤️‍🔥TIL (Today I Learned)73

[TIL] 2022-12-20(37day) 자주쓰이는 Lombok 어노테이션 👉 Lombok - Java에서 자주 반복되는 코드들을 어노테이션을 통해 자동으로 생성 해 주는 라이브러리 @AllArgsConstructor - 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성 (final 키워드, 혹은 @NonNull 이 붙은 멤버 변수만을 받는 생성자를 만들어줌) @NoArgsConstructor - 파라미터를 받지 않는 생성자를자동으로 생성 (필드들이 final로 생성되어 있는 경우에는 필드를 초기화할 수 없기 때문에 에러 발생) @RequriedArgsConstructor - 초기화 되지 않은 모든 final 필드, @NonNull과 같이 제약조건이 설정되어있는 모든 필드들에 대한 생성자를 자동으로 생성 @Builder - 빌더패턴을 .. 2022. 12. 20.
[TIL] 2022-12-19(36day) @Controller와 @RestController의 차이점 👉 @Controller @Target(value=TYEP) @Retention(value=RUNTIME) @Documented @Component public @interface Controller - Model 객체를 만들어 데이터를 담고 View를 반환 - View에 표시될 데이터가 있는 Model 객체를 만들고 올바른 View를 선택하는 일을 담당 - @ResponseBody를 사용하여 HTTP Response Body에 데이터를 담아 요청을 완료할 수 있다. - @Controller는 클래스를 Spring MVC 컨트롤러로 표시하는데 사용 - Client는 URI 형식으로 웹 서비스에 요청을 보낸다. - Mapping되는 Handler.. 2022. 12. 19.
[TIL] 2022-12-15(35day) Project MySelectShop - JWT 👉 JWT - Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token (토큰의 한 종류 / 보통 쿠키 저장소에 담겨서 위에서 배운 ‘저장된 쿠키’라고 생각) # 장점 - 동시 접속자가 많을 때 서버 측 부하 낮춤 - Client, Sever 가 다른 도메인을 사용할 때 - 예) 카카오 OAuth2 로그인 시 JWT Token 사용 # 단점 - 구현의 복잡도 증가 - JWT 에 담는 내용이 커질 수록 네트워크 비용 증가 (클라이언트 → 서버) - 기 생성된 JWT 를 일부만 만료시킬 방법이 없음 - Secret key 유출 시 JWT 조작 가능 # JWT 사용 흐름 Client 가 username, password 로 로그.. 2022. 12. 18.
[TIL] 2022-12-14(34day) 프로그래머스 알고리즘 문제풀이(3) 👉 영어가 싫어요 - 문제설명 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. - 제한사항 numbers는 소문자로만 구성되어 있습니다. numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다. 1 ≤ numbers의 길이 ≤ 50 "zero"는 numbers의 맨 앞에 올 수 없습니다. - 입출력 예 numbers result "onetwothreefourfivesixsevene.. 2022. 12. 15.
[TIL] 2022-12-14(33day) AllInOneController의 한계점 👉 AllInOneController의 한계점 - 한 개의 클래스에 너무 많은 양의 코드가 존재 (코드 이해가 어려움: 처음부터 끝까지 다 읽어야 코드 내용을 이해할 수 있음) - 현업에서는 코드 추가 혹은 변경 요청이 계속 생김 ex) 관심 상품 등록 시 Client 에게 응답 (Response) 하는 값 변경(등록된 Product 전체 정보 → 등록된 Product 의 id) 최저가 (Myprice) 업데이트 조건 변경(Client 가 최저가를 0원 이하로 입력 → 에러 발생) DB 테이블 이름 변경(Product 테이블의 **lprice** → **lowprice** 변경) 👉 절차적 프로그래밍 vs 객체지향 프로그래밍 # 절차적 프로그래밍 - 초기 프로그.. 2022. 12. 14.
[TIL] 2022-12-13(32day) JPA 심화 👉 영속성 컨텍스트 - 엔티티를 영구 저장 하는 환경 # JPA 엔티티의 상태 - 비영속(New) : 영속성 컨택스트와 관계가 없는 새로운 상태 (해당 객체의 데이터가 변경되거나 말거나 실제 DB의 데이터와는 관련없고, 그냥 Java 객체인 상태) // 엔티티를 생성 Member minsook = new Member(); member.setId("minsook"); member.setUsername("민숙"); - 영속(Managed) : 엔티티 매니저를 통해 엔티티가 영속성 컨텍스트에 저장되어 관리되고 있는 상태 (데이터의 생성, 변경등을 JPA가 추적하면서 필요하면 DB에 반영) // 엔티티 매니저를 통해 영속성 컨텍스트에 엔티티를 저장 em.persist(minsook); - 준영속(D.. 2022. 12. 14.