전체 게시물
-
[Spring] Builder 패턴을 사용해야 하는 이유를 알아보자legacy/Spring 2023. 11. 5. 02:11
사건의 발달 게시판에 글을 작성하였을 때, 등록된 시간이 Timestamp 값을 사용하기 때문에 다음과 같이 출력되었습니다. MySQL에서 등록일(created_date) 필드를 TimeStamp 타입을 사용하였고, 자바에서도 TimeStamp 타입을 사용하여 값을 받았습니다. MySQL Board Class 게시판 글 조회 문제 해결 저는 "2023년 11월 04일 22시 08분"으로 출력을 원했기에 다음과 같이 코드를 수정하였습니다. Board Class TimeStamp -> String 타입으로 포맷팅을 하기 위해 SimpleDateFormat 클래스를 사용하였습니다. 또한 생성자로 필드 값을 먼저 설정한 후, 추가적으로 포맷팅 된 값을 저장해야 하기 때문에 Setter가 필요하게 된 상황이 되었..
-
[Spring] JdbcTemplate을 사용하여 DB에 저장할 때, 키(PK) 값 가져오기legacy/Spring 2023. 11. 1. 17:16
원인 Repository를 테스트할 때 key 값에 null이 저장되어 있어 DB 조회가 불가능한 상황이다. DB DB의 키(PK) 값은 auto_increment 전략을 사용하고 있다. Application 시점에서는 DB에 값을 저장하더라도 키 값을 알 수가 없다. 이는 테스트 코드에서 DB에 정상적으로 저장됐는지 확인하는 과정에서 문제가 발생한다. Application jdbcTemplate.update("INSERT INTO Member(login_id, name, password) VALUES(?, ?, ?)",member.getLoginId(), member.getName(), member.getPassword()); JdbcTemplate을 사용하여 DB에 Member 객체를 저장하였다. T..
-
[Spring] Dependency 모음legacy/Spring 2023. 10. 31. 16:39
Test에서 Lombok 사용 //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' MySQL runtimeOnly 'mysql:mysql-connector-java' Jdbc DataSource 사용하려면 필요 implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
-
[JPA] 준영속 상태 엔티티 -> 영속 상태 엔티티로 만들기, merge() (old2)legacy/JPA 2023. 9. 24. 15:11
1. 비영속 상태의 엔티티 생성 영속성 컨텍스트(PersistContext)에 한 번도 저장된 적이 없는 Member를 생성합니다. EntityManager를 통해 persist를 하지 않았기 때문에 비영속 상태입니다. void test() { // member1 생성 Member member1 = new Member(); member1.setName("member1"); } 2. 비영속 상태 -> 영속 상태 EntityManager를 통해 Member를 persist하였습니다. 따라서 영속성 컨텍스트에 의해 관리되는 영속 상태의 엔티티가 됩니다. (DB에서 조회되지 않는다.) void test() { // member1 생성 Member member1 = new Member(); member1.setN..
-
[Kotlin] when문을 사용하여 다양하게 처리하기legacy/Kotlin 2023. 9. 21. 21:12
코틀린에서 when절은 다른 언어에서 제공하는 switch-case문과 동일합니다.(코틀린도 제공) is 키워드와 in 키워드를 통해서 when문을 사용하는 코드를 알아봅시다. 기본적인 when문 코틀린도 다른 언어와 마찬가지로 switch-case와 동일한 기능인 when문을 제공합니다. -> 기준으로 왼쪽은 a에 해당하는 값이고 오른쪽은 왼쪽 값이 true인 경우 실행할 코드입니다. fun main() { var a: Int = 10 when(a) { 10 -> println("a = 10") else -> println("a != 10") } } in과 is를 사용하는 when문 in 키워드의 경우 when문에서만 사용할 수 있는 것이 아닌 if-else문 등 다양하게 사용할 수 있습니다. is 키..
-
[Kotlin] 동등성 비교와 동일성 비교 그리고 캐시 조회legacy/Kotlin 2023. 9. 19. 09:21
코틀린에서 "=="와 "===" 연산자를 제공합니다. "=="은 동등성 비교(값 비교)를 제공하고 "==="은 동일성 비교(참조값 비교)를 제공합니다. 얼핏 보면 쉬운 내용이면서도 헷갈리는 부분이 존재합니다. "=="와 "==="의 차이점 그리고 캐시로부터 값을 가져오는 상황을 이해해봅시다. 동등성(==) 비교 ==는 동등성 비교를 제공합니다. 아래에 num1 변수가 존재합니다. 코틀린의 특성상 참조형 변수로 선언되었지만, 컴파일 시에 참조형 -> 기본형으로 변경되어 저장됩니다. 즉 주소값을 저장하는 것이 아니라 값 그 자체를 저장하게 됩니다.(힙에 저장되는 것이 아닌 스택에 저장됨) 따라서 num1과 num2의 동일성 비교에서 true를 반환합니다. fun main() { var num1: Int = ..