전체 글170 [Spring] 민감한 정보 관리하기 wt. secretKey JWT를 사용하다 보면 secretKey를 어떻게 관리해야 하는지 고민해본적이 있을 겁니다.이는 공개되게 되면 매우 위험하므로 적절하게 관리하는 것이 중요하다. 1. 메모장직접 메모장에 시크릿 키를 저장하여 파일을 읽어 사용하는 방법이다.원격 저장소에는 secretKey를 비워두고, 배포 시점에 직접 바꿔주는 식으로 진행하면 된다. 2. application.properties 또는 application.ymlsecretKey를 application에 저장한 후, @Value를 이용하여 가져오는 방법이다.// application.propertiesauth.jwt.secret= Yn2kjibddFAWtnPJ2AFlL8WXmohJMCvigQggaEypa5E=// POJO@Componentpublic cla.. 2024. 7. 1. BOJ 3190 - 뱀 https://www.acmicpc.net/problem/3190 구현이 문제에서 크게 구현할 부분은 사과를 먹었을 때 꼬리를 늘리는 작업, 뱀 몸통에 부딪혔을 때 게임이 종료되게 하는 기능 이다.뱀의 위치를 효율적으로 나타내기 위한 자료구조를 생각해내는 것이 핵심이다. 뱀이 한 번 움직이면 꼬리와 머리가 한 칸씩 움직이기 때문에 앞과 뒤를 다룰 수 있는 deque를 이용하면 된다. 문제에서 헤맸던 부분이 방향을 돌리는 시점이다.예를 들어 10초에 왼쪽으로 움직인다는 뜻은 이전 방향으로 10까지 움직인 후에 방향을 바꾼다는 뜻이다! 구현 문제 중 쉬운 편에 속한다. 코드#include #include #include using namespace std;#define UP_DIR 0#define RIGHT.. 2024. 6. 20. RequestBody의 원리와 기본 생성자 RequestBody를 원리를 이해하기 전, 먼저 개념 정리를 해보자.직렬화와 역직렬화직렬화는 오브젝트를 문자열 또는 바이트 스트림으로 변환하는 것이다. 보통 오브젝트를 데이터베이스, 파일, 캐시 등 저장하기 위한 연속적인 데이터로 변환할 때 사용된다.이와 반대로 역직렬화는 문자열 또는 바이트 스트림을 오브젝트로 변환하는 것을 의미한다. 쉽게 말해 직렬화 종류는 우리가 자주 사용하는 JSON, XML 등이 존재한다. 이런 직렬화와 역직렬화 시 사용되는 것이 Http Message Converter이다.Http Message Converter 는 HTTP Request Body 를 Java 오브젝트로 변환( 역직렬화 )하거나 Java 오브젝트를 특정 형태로 변환( 직렬화 )하는 역할을 수행한다. Reque.. 2024. 5. 23. JDBC란 무엇인가? (+ Spring JDBC) JDBC쉽게 말해 JAVA에서 데이터베이스에 접근할 수 있도록 도와주는 API이다.먼저 왜 JDBC가 등장했는지 확인해보자.JDBC 이전의 문제점새로운 데이터베이스의 사용법을 배워야한다.DB 벤더마다 사용법은 다름다른 DB 사용 시, 새롭게 배워야하는 함프로덕션 코드의 변경 범위가 커질 수 있다.이게 무엇보다 큰 문제점DB를 다른 것으로 바꿀 경우, 모든 코드를 싹 고칠 수도 있음이를 의존 역전 원칙(DIP)의 위배라고 함DIP는 추후에 알아보자그렇기 때문에 JDBC는 DB에 접근하기 위한 모든 과정을 담당하여 우리는 DB 벤더마다 사용법을 학습할 필요가 없다.JDBC의 구성요소1. DriverDBMS와 통신하는 역할을 수행DB 벤더마다 별도의 드라이버가 필요JDBC Driver Manager라이브러리로.. 2024. 5. 19. [초록스터디] Spring MVC 회고 이번 Spring MVC 미션을 수행하면서 생각했던 점들을 적어볼까 한다.2단계1. 날짜 포맷은 어떻게 써야하는가?이번 문제에서 날짜와 시간을 저장하는 필드가 존재했다.- Java 8 이전에는 Data를 이용하여 날짜를 저장하였지만, Java 8 이후부턴 LocalDate, LocalTime, LocalDateTime을 이용- 날짜 포맷을 맞추기 위해 Reservation에서 @DataTimeFormat을 이용하여 포맷을 정했다.@DateTimeFormat(pattern = "yyyy-MM-dd")private LocalDate date;@DateTimeFormat(pattern = "HH:mm")private LocalTime time; Q. 날짜 타입 객체는 어떻게 만들지?처음에 당연히 이게 정상적으.. 2024. 5. 15. [Java] 일급 컬렉션을 왜 사용할까? Collection을 Wrapping 하면서, 그 외 다른 멤버 변수가 없는 상태 이번 로또 문제를 풀면서 맞이했던 문제들을 살펴보자. 1. Validation 처리LottoNumber는 List numbers를 wrapping하는 일급 컬렉션이다.numbers는 6개의 중복되지 않는 숫자만 포함해야 한다. 일급 컬렉션의 개념을 이해하기 전엔, "입력 시 Validation 처리해야 하는가?" 라는 고민을 했다. View 차원에서 "입력받는 값에 최소한의 유효성 검증을 진행한다." 의 규칙이 존재하기 때문에 상관이 없을 것이라 생각했다.MVC Pattern에서의 유효성 검사 (velog.io) MVC Pattern에서의 유효성 검사책임 전가 패스velog.io 그런데 조사를 더 해보니 일급 컬렉션은 이.. 2024. 5. 5. 이전 1 2 3 4 5 6 7 ··· 29 다음