본문 바로가기

전체 글70

JPA Auditing으로 Entity의 createdDate, modifiedDate 관리 JPA Auditing? 데이터를 관리하는데 있어서 생성시점, 수정시점 등 언제 데이터가 변경되었는지 기록해 두는 것은 매우 중요합니다. 그리고 이러한 것들은 한 엔티티에 국한된 것이 아니라 모든 엔티티에 적용됩니다. 중복을 편하게 해결하기 위해 Spring Data는 엔티티를 생성하거나 변경한 시점을 추적하기 위한 것들을 제공합니다. 이 기능을 이용하면 데이터를 생성하거나 수정할 때 따로 로직을 구현하지 않아도 자동적으로 시간 데이터를 관리해줍니다. 예제로 확인하기 위해 먼저 간단하게 Entity, Controller, Repository, Service를 구현하였습니다. User.java package com.example.practice.impl; import lombok.Builder; impor.. 2022. 2. 26.
[c++][프로그래머스] 기둥과 보 설치 프로그래머스 기둥과 보 설치 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr.. 2022. 2. 25.
Spring Data JPA & H2 데이터베이스 연결하기(인메모리, TCP) 로컬에서 개발하거나 단위 테스트, 토이 프로젝트 등을 진행할 때 H2 데이터베이스를 많이 사용합니다. H2 데이터베이스는 설치와 관리가 편하고, 여러 데이터베이스와 호환성도 지원하기 때문에 가볍게 사용하기 좋습니다. 설명을 위해 먼저 간단하게 Entity, Controller, Repository, Service를 구현하였습니다. User.java package com.example.h2connect.web; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; @Getter @NoArgsConstructor @Entity public class User { @Id @G.. 2022. 2. 24.
[c++][프로그래머스] 가사 검색 프로그래머스 가사 검색 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 문제 풀이 이 문제는 이분 탐색으로 해결했습니다. 만약 fro?? 라는 쿼리가 있다면 문자열을 비교하여 froaa - frozz 사이에 포함된 문자열의 개수를 세는 방식입니다. 이를 위해 upper_bound와 lower_bound를 사용했습니다. 물음표가 앞에 있는 ??odo 같은 쿼리의 경우, aaodo - zzodo의 사이가 되기 때문에 위의 논리를 그대로 적용하면 길이가 5인 거의 모든 문자열이 포함되게 됩니다. bakxj 와 같은 문자열도 사전 순으로는 위.. 2022. 2. 23.
Spring Initializr로 Spring Boot 프로젝트 생성하고 IntelliJ에서 GitHub 연동하기 Spring Initializr로 Spring Boot 프로젝트 생성하기 https://start.spring.io/ Spring Boot 프로젝트를 생성할 때 Spring Initializr를 사용하면 쉽게 프로젝트를 생성할 수 있습니다. 위의 링크로 들어가시면 다음과 같은 화면이 나옵니다. Spring Initializr에서 자신이 만들고자 하는 프로젝트에 따라 설정을 해줍니다. 저는 다음과 같이 설정해 주었습니다. Project : Gradle Project Language : Java Spring Boot : 2.6.3 Group : com.example Artifact : test Packaging : Jar Java : 11 Spring Boot 중 SNAPSHOT이 붙은 것은 현재 개발 중인.. 2022. 2. 22.
[c++][프로그래머스] 자물쇠와 열쇠 프로그래머스 자물쇠와 열쇠 [2020 KAKAO BLIND RECRUITMENT] https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 풀이 이 문제는 2차원 Array를 다루는 문제입니다. key를 90도 씩 회전하면서 lock 위를 슬라이딩 하여 lock을 모두 채우는 경우가 있으면 true를 반환합니다. key를 슬라이딩 하는 방법은 다음 그림과 같습니다. (2*M + N - 2) 사이즈의 Array를 하나 선언하여 가운데에 lock영역을 두고(3번) .. 2022. 2. 22.