본문 바로가기

개발/JAVA13

Cipher을 통한 암호화 서비스를 개발하면서 양방향으로 암호화를 진행해야하는 정보들이 존재하여 Cipher로 작업한 부분을 남긴다. @Component public class CipherHelper { public static String alg = "7E6YRDQ59E9UTAM9M3G4OJU2RZTGF6K4"; private static final String key = "AES/CBC/PKCS5Padding"; private static final String iv = key.substring(0, 16); // 16byte public static String encrypt(String text) throws Exception { /** * Cipher : AES 및 다양한 암호화 알고리즘을 사용하여 데이터를 암호화하고 해.. 2024. 2. 21.
@EqualsAndHashCode에 대한 정리 @Data를 탐험하다가 @EqualsAndHashCode를 확인했다. Data Annotaion을 확인해보자. See Also를 참고해보면 Getter, Setter, RequiredArgsConstructor은 익숙하니 넘어가고 이번에는 @EqualsAndHashCode을 확인해보고 싶다. https://projectlombok.org/features/EqualsAndHashCode @EqualsAndHashCode projectlombok.org 정말 영어는 언제나 어렵고 제일 위의 설명을 참고하면 Objects를 상속한 fields에 한하여 equals and hashCode methods를 전부 implementation을 진행하겠다는것인데... 우리가 선언하는 아이들은 기본적으로 object가 .. 2023. 9. 21.
DTO에서 @Setter쓰는 것에 대한 주저리[1] JPA를 사용하다 보면 @Setter을 사용하고자 하면 조심해야한다의 상황은 익숙하다. 하지만 우리는 비즈니스 로직에서 주로 사용하는 @Data 어노테이션은 @Setter을 내제하고 있다. https://projectlombok.org/features/Data @Data projectlombok.org https://www.inflearn.com/questions/161417/dto-%EC%82%AC%EC%9A%A9%EC%97%90%EB%8C%80%ED%95%B4-%EA%B6%81%EA%B8%88%ED%95%A9%EB%8B%88%EB%8B%A4 DTO 사용에대해 궁금합니다. - 인프런 | 질문 & 답변 안녕하세요 영한님.항상 좋은강의 보면서 이미 완강을 하였지만 궁금한점이 이 강의내용에 해당되는것 같아 .. 2023. 9. 17.
자바 flatMap 이해하기 자바 Stream API에서 map 사용은 익숙하지만 flatMap은 조금 생소한 상황이다. flatMap을 스트림 평면화로 설명해준다. 설명만으로 이해가 어렵기에 코드로 보는걸로 1차 배열 2차 배열 중복 구조로 되어있는 리스트를 하나의 스트림 처럼 다룰 수 있다. 2022. 11. 3.
모던 자바 인 액션 스터디 http://www.yes24.com/Product/Goods/77125987 모던 자바 인 액션 - YES24 자바 1.0이 나온 이후 18년을 통틀어 가장 큰 변화가 자바 8 이후 이어지고 있다. 자바 8 이후 모던 자바를 이용하면 기존의 자바 코드 모두 그대로 쓸 수 있으며, 새로운 기능과 문법, 디자인 패턴 www.yes24.com [10.20 - 11.08] 1장 [자바 8 - 11] 까지의 상황에 대하여 메서드를 값으로 전달 한다 스트림의 외부/내부 반복 컬렉션 > 스트림 > 병렬처리 >List + 복원 2장 동작 파라미터화 동작 파라미터화 - 아직 어떻게 실행할지 정의하지 안은 코드 블록을 의미한다. 해당 블록은 나중에 프로그램에서 호출하며 실행은 나중으로 미뤄지는것이다. 책에서는 Apple.. 2022. 10. 13.
@NoArgsConstructor(access = PROTECTED)에 관하여 기존 코드를 작성하면서 @NoArgsConstructor로 생성자를 만들면서 access = PROTECTED를 도데체 왜 사용하는지 궁금해서 공부해보았다. 우선 - PUBLIC은 생성자를 너무 무분별하게 생성이 가능한 상황이 발생할 수 있기에 사용하지 않는 것을 추천하는 상황이다 . 그럼 남은 아이들이 PROTECTED와 PRIVATE인데 그럼 둘은 어디서 무엇이 다른걸까? 결론부터 보자면 PRIVATE은 아래의 에러를 발생시킨다는 것을 확인할 수 있다. ERROR : Class 'StoreEntity' should have [public, protected] no-arg constructor Entity Proxy가 원인이다. 아래 코드를 따라가 보자 FOOD ENTITY @Entity @NoArgs.. 2022. 9. 12.