분류 전체보기
-
[Kotlin In Action] 3장: 함수 정의와 호출Book/Kotlin In Action 2021. 8. 27. 16:42
3.1 코틀린에서 컬렉션 만들기 fun main() { val list = arrayListOf(1, 7, 54); println(list.javaClass) val set = hashSetOf(1, 7, 53) println(set.javaClass) val map = hashMapOf(1 to "one", 7 to "seven", 53 to "fifty-three") println(map.javaClass) } class java.util.ArrayList class java.util.HashSet class java.util.HashMap 위의 결과를 보면 코틀린만의 컬렉션 기능을 제공하지 않는다는 것을 알 수 있습니다. 코틀린 컬렉션은 자바 컬렉션과 똑같은 클래스입니다. 하지만 코틀린에서는 자바보..
-
[Spring] Kotlin으로 ModelMapper 사용하는 방법Server/Spring 2021. 8. 25. 23:17
들어가기 전에 이번 글에서는 Kotlin에서 ModelMapper를 사용하는 방법에 대해서 간단하게 정리 해보겠습니다. Spring으로 백엔드를 개발하다 보면 DTO로 클라이언트로 부터 받아오고 JPA를 통해서 디비에 접근할 때는 Entity로 변환해서 접근을 합니다. 그리고 JPA를 통해서 나온 결과를 그대로 반환하기 것이 아니라 DTO로 변환해서 클라이언트로 반환하게 되는데요. 그러면 매번 DTO 필드가 2개, 3개 달라질텐데 그에 해당하는 생성자를 만들어야 할 것입니다. 상당히 번거로운 작업이 될텐데요. 이럴 때 사용하면 좋은 것이 ModelMapper 입니다. ModelMapper는 서로 다른 Object 간의 필드 값을 자동으로 Mapping 해주는 라이브러리 입니다. gradle impleme..
-
[JPA] 3장: 영속성 관리란 무엇일까?카테고리 없음 2021. 8. 25. 14:47
JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기 영속성 컨텍스트!!(JPA를 이해하려면 영속성 컨텍스트라는 것을 이해해야함!) 엔티티 매니저 팩토리와 엔티티 매니저 일단 EntityManagerFactory를 통해서 요청이 올 때마다 EntityManager를 생성합니다. EntityManager는 내부적으로 데이터베이스 커넥션 풀을 사용합니다. 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 엔티티를 영구 저장하는 환경 EntityManager.persist(entity); EntityManager를 통해서 영속성 컨텍스트에 접근 엔티티의 생명주기 비영속(new) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속(managed) 영속성 컨텍스트에 관리되는 상태 준영속(deta..
-
[Spring] H2 Database 연결 에러 해결하기Server/Spring 2021. 8. 24. 14:16
H2 DataBase 에러 해결하기 이번 글에서는 Spring에서 H2 Database를 사용할 때 만난 에러를 해결하는 과정에 대해서 간단하게 정리해보겠습니다. H2 DataBase는 설치가 되어 있다고 가정한 상태로 글을 시작해보겠습니다. 설치를 한 후에 h2 디렉토리를 보면 bin 디렉토리가 존재할 것입니다. bin 디렉토리 안에는 h2.sh라는 파일이 존재할 것인데요. h2.sh 파일을 sh h2.sh로 실행하면 아래와 같은 화면을 볼 수 있을 것입니다. 안뜬다면 http://localhost:8082로 접속하면 보일 것입니다. 그리고 바로 연결 버튼을 누르면 위의 보이는 빨간색 에러를 볼 수 있을 것인데요. Database "/Users/choejeong-gyun/test" not found, ..
-
[Java] 객체지향 설계 5원칙 - SOLID란 무엇일까?Language/Java 2021. 8. 21. 00:25
객체지향 설계 5원칙 SOLID 객체 지향 설계의 정수라고 할 수 있는 5원칙이 집대성됐는데, 바로 SOLID 입니다. SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 SRP - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. - 로버트 C.마틴 위의 남자 클래스를 보면 그냥 보아도 이 사람이 해야 할 역할, 책임이 매우 많은 ..
-
[Kotlin In Action] 2장: 코틀린 기초Book/Kotlin In Action 2021. 8. 20. 15:04
2장: 코틀린의 기초 2장에서 다루는 내용 함수, 변수, 클래스, enum, 프로퍼티를 선언하는 방법 제어 구조 스마트 캐스트 예외 던지기와 예외 잡기 2.1.2 함수 fun max (a: Int, b: Int): Int { return if (a > b) a else b } 함수를 선언할 때 fun 키워드를 사용합니다. 파라미터 이름 뒤에 그 파라미터 타입을 적습니다. 함수를 최상위 수준에 정의할 수 있습니다. 자바와 달리 꼭 클래스 안에 함수를 넣어야 할 필요가 없습니다. 배열도 일반적인 클래스와 마찬가지입니다. 코틀린에는 자바와 달라 배열 처리를 위한 문법이 따로 존재하지 않습니다. fun max (a: Int, b: Int): Int = if (a > b) a else b 처음에 보았던 코드를 간..
-
[Redis] Medis를 사용하여 Redis GUI를 사용하는 법Tool 2021. 8. 10. 23:43
Medis 설치해서 사용하기! MySQL 같은 경우는 WorkBench가 있어서 손쉽게 데이터를 보고 관리할 수 있는데요. 하지만 Redis는 매번 redis-cli를 통해서 데이터를 확인하고 하는 것이 번거로웠습니다. 그러던 중에 Medis라는 Redis 데이터를 UI로 볼 수 있는 아주 좋은 것이 있어서 정리해보려고 합니다. 그래서 Mac에서 Medis를 설치해서 사용하는 법에 대해서 알아보겠습니다. 먼저 AppStore에서 Medis를 검색하면 Medis2 - GUI for Redis가 나오는데요. 이것을 다운하겠습니다. 그러면 위와 같은 화면이 뜨는데요. 위의 화면에서 다른 ElastiCache와 같은 것을 사용한다면 해당 URL을 적은 후에 Connect를 누르면 되고 local Redis를 사..
-
[Spring] Spring Data Redis로 자료구조 사용해보기Server/Spring 2021. 8. 10. 22:59
Spring Data Redis로 자료구조 다루어 보기 Redis 는 간단하게 말하면 Key-Value 형태의 영속성을 지원하는 인메모리 데이터 저장소입니다. 이번 글에서는 Spring Data Redis를 활용해서 List, Set, Sorted Set, Map을 사용해서 데이터를 저장하고 조회하는 것에 대해서 정리해보겠습니다. 먼저 Spring Boot gradle 기반의 프로젝트에서 의존성 부터 추가해서 시작해보겠습니다. gradle implementation 'org.springframework.boot:spring-boot-starter-data-redis' 위의 Spring-data-redis 의존성을 추가하겠습니다. 이제 Redis 설정을 해보겠습니다. Redis 설정 @Configurati..