전체 글
-
3. 첫 번째 요구사항 추가하기 - 책의 분야Kotlin/실전! 코틀린과 스프링 부트로 ... 개발 2023. 8. 5. 10:39
21. 책의 분야 추가하기 1. Type, Status 등을 서버에서 관리하는 방법들을 살펴보고 장단점을 이해한다. 2. Test Fixture의 필요성을 느끼고 구성하는 방법을 알아본다 3. Kotlin에서 Enum + JPA + Spring Boot를 활용하는 방법을 알아본다. Object Modal Pattern - Test Fixture @Entity class Book( val name: String, val type: String, @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, ) { init { if (name.isBlank()) { throw IllegalArgumentException("이름은 비..
-
2장 SQL 기초DB & SQL/SQL 레벨업 2023. 8. 4. 19:14
6. SELECT 구문 1. SELECT 구와 FROM 구 2. WHERE 구 - IN 으로 OR조건을 간단하게 작성 - NULL 레코드를 선택할 때는 'IS NULL' 이라는 키워드 사용 ㆍNULL 아닌 레코드는 'IS NOT NULL' 3. GROUP BY 구 - GROUP BY 구를 사용하면, 테이블에서 단순하게 데이터를 선택하는 것뿐만 아니라 합계 또는 평균 등의 집계 연산을 SQL 구문으로 할 수 있다. - SQL의 대표적인 집계 함수 함수 이름 설명 COUNT 레코드 수를 계산 SUM 숫자를 더함 AVG 숫자의 평균을 구함 MAX 최댓값을 구함 MIN 최솟값을 구함 4. HAVING 구 - HAVING 구를 사용하면 선택된 결과 집합에 또다시 조건을 지정할 수 있다. - 즉, WHERE 구가 ..
-
1장 DBMS 아키텍처DB & SQL/SQL 레벨업 2023. 8. 4. 19:13
1. DBMS 아키텍처 개요 1. 쿼리 평가 엔진 - 쿼리 평가 엔진 : 사용자로부터 입력받은 SQL 구문을 분석하고, ,어떤 순서로 기억장치의 데이터에 접근할지를 결정한다. - 이때 결정되는 계획을 '실행 계획'라고 부른다. - 접근 메서드(access method) : 실행 게획에 기반을 둬서 데이터에 접근하는 방법 - 한마디로 쿼리 평가 엔진은 계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈이다. 2. 버퍼 매니저 - DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해둔다. - 이 메모리 영역을 관리하는 것이 바로 버퍼 매니저이다. - 버퍼 매니지는 디스크를 관리하는 디스크 용량 매니저와 함께 연동되어 작동한다. 3. 디스크 용량 매니저 - 데이터베이스는 데이터를 영구적으로..
-
2. Java 서버를 Kotlin 서버로 리팩토링Kotlin/실전! 코틀린과 스프링 부트로 ... 개발 2023. 8. 2. 14:47
11. Kotlin 리팩토링 계획 세우기 - 1. Domain ㆍ특징 : POJO, JPA Entity 객체 - 2. Repository ㆍ특징 : Spring Bean, 의존성 X - 3. Service ㆍ특징 : Spring Bean, 의존성 O, 비즈니스 로직 - 4. Controller / DTO ㆍ특징 : Spring Bean, 의존성 O / DTO의 경우 그 숫자가 많다. 12. 도메인 계층을 Kotlin으로 변경하기 - Book.java Caused by: java.lang.NoClassDefFoundError: kotlin/reflect/full/KClasses - kotlin class에 대해서 리플렉션을 못한다. - 해결방안 : gradle에 해당 dependencies 추가 imple..
-
1. 리펙토링 준비Kotlin/실전! 코틀린과 스프링 부트로 ... 개발 2023. 7. 31. 16:00
1. 도서관리 애플리케이션 이해하기 2. 테스트 코드란 무엇인가, 그리고 왜 필요한가?! 테스트 코드는 왜 필요한가?! - 1. 개발 과정에서 문제를 미리 발견할 수 있다. - 2. 기능 추가와 리팩토링을 안심하고 할 수 있다. - 3. 빠른 시간 내 코드의 동작 방식과 결과를 확인할 수 있다. - 4. 좋은 테스트 코드를 작성하려 하다보면, 자연스럽게 좋은 코드가 만들어 진다. - 5. 잘 작성한 테스트는 문서 역할을 한다. (코드리뷰를 돕는다.) 3. 코틀린 코드 작성 준비하기 plugins { id 'org.jetbrains.kotlin.jvm' version '1.6.21' } dependencies { implementation 'org.jetbrains.kotlin:kotlin-stdlib-j..
-
객체지향의 사실과 오해 : 역할, 책임, 협력 관점에서 본 객체지향Books/객체 지향의 오해와 진실 2023. 7. 29. 14:32
1. 협력하는 객체들의 공동체 객체의 역할 - 여러 객체가 동일한 역할을 수행할 수 있다. - 역할은 대체 가능성을 의미한다. - 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다. - 하나의 객체가 동시에 여러 역할을 수행할 수 있다. 객체지향의 본질 - 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시슽메을 분할하는 방법이다. - 자율적인 객체란 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미한다. - 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다. - 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하..
-
5. 추가적으로 알아두어야 할 코틀린 특성Kotlin/자바 개발자를 위한 코틀린 입문 2023. 7. 29. 10:31
19. 코틀린의 이모저모 1. Type Alias 와 as import - 긴 이름의 클래스 혹은 함수 타입이 있을 때 축약하거나 더 좋은 이름을 쓰고 싶다! typealias FruitFilter = (Fruit) -> Boolean fun filterFruits2(fruit: List, filter: FruitFilter) { } // 이름 긴 클래스를 컬렉션에 사용할 때도 간단히 줄일 수 있다. data class UltraSuperGuardianTribe( val name: String ) typealias USGTMap = Map - 다른 패키지의 같은 이름 함수를 동시에 가져오고 싶다면?! - as import : 어떤 클래스나 함수를 임포트할 때 이름을 바꾸는 기능 import com.lan..
-
데이터베이스 첫걸음DB & SQL/데이터 베이스 첫걸음 2023. 7. 27. 17:17
1장. 데이터베이스란 - 용도와 역할 데이터 베이스의 4가지 기본 기능 - 데이터 조작 ( 검색 / 등록 / 수정 / 제거 ) - 동시성 제어 - 장애 대응 - 보안 2장. 관계형 데이터베이스란 - 가장 대표적인 데이터베이스 * Oracle 이나 MySQL 같은 제품은 'DBMS 이며 데이터베이스가 아니다' 가 바른 표현이다 - 데이터베이스 : 기능이나 구조를 나타내는 추상적인 개념 - DBMS : 그것을 실현하기 위해 작성된 구체적인 소프트웨어 - '데이터베이스'와 'DBMS'는 같은 의미로 사용되는 경우가 많지만, 원래는 '추상'과 '구상'이라는 차이가 있다 * 데이터베이스는 OS와 애플리케이션 사이에 낀 중간 소프트웨어(미들웨어)다. 4장. 데이터베이스와 아키텍처 구성 - 견고하고 고속의 시스템을 ..