전체 글 57

2024-05-20 [Kotlin+Spring Dto는 왜 Data class로 다루는 것이 좋을까?]

Data class는 무엇이고, 왜 Dto는 Data class로 다루는 것이 좋을까요?발단Dto를 무의식적으로 Data class로 사용하고 있다가 문득 왜 Dto는 Data class로 다루는지, 어떨 때 가장 효율적인지 궁금하여 해당 주제를 정리해보게 되었습니다. 왜 Dto는 Data class로 다룰까요?"Data classes in Kotlin are classes whose main purpose is to hold data.""데이터 클래스(Data class)는 데이터 보관 목적으로 만든 클래스를 말한다."코틀린 공식 문서의 내용입니다. 데이터 보관을 목적으로 만들었다하니프로세스 간 데이터를 전달하는 객체를 의미하는, 말 그대로 데이터를 전송하기 위해 사용하는 객체 DTO(Data Tran..

카테고리 없음 2024.05.20

2024-05-18 [Programmers Kotlin 코틀린 약수의 개수와 덧셈]

CASE (약수의 개수와 덧셈)문제설명두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return하도록 solution 함수를 완성해주세요. 제한사항1 ≤ left ≤ right ≤ 1,000입출력 예시left = 13 / right = 17일 경우 result는 43입니다. 문제 풀이class Solution { fun solution(left: Int, right: Int): Int { var answer: Int = 0 var storage = left while (storage != right+1) { var i..

SQL/PROGRAMMERS 2024.05.18

2024-05-16 [Kotlin+Spring Todo List Controller 내용 회고]

익일 예비군으로 하루 빨리 과제를 제출했습니다.필수구현 단계의 경우 Entity가 하나이다 보니, 각 Entity 간 관계를 고려하지 않아도 되어 비교적 수월하였습니다만 .. 강의를 보지 않고 과제를 진행했더라면 정해진 기한 내로 제출하지 못했을거라 생각하여 Controller, Model, Dto, Service 등 하나하나 뜯어보며 이해하는 중입니다..이해하지 않으면 말짱 도루묵이니, 차주 선택구현 과제까지 완벽하게 이해하고 진행하기 위해 TIL로 내용을 회고해봅니다..! Github 링크https://github.com/JinkownHong/todoList GitHub - JinkownHong/todoListContribute to JinkownHong/todoList development by c..

카테고리 없음 2024.05.16

2024-05-14 [Kotlin+Spring 코틀린 스프링 금일 배운내용 정리]

1. @Embeddable / @Embedded2. @GeneratedValue3. mappedBy / @JoinColumn4. 고아객체 자동 삭제하기 강의를 들으면서 회고하고 싶은 내용, 설명이 다소 부족하여 더 학습하고 싶은 내용들을 정리하여 블로그에 남겨두려 합니다. 1. @Embeddable / @Embedded@Entity@Table(name = "app_user")class User( @Column(name = "email", nullable = false) val email: String, @Column(name = "password", nullable = false) val password: String, @Embedded var profile: Profil..

카테고리 없음 2024.05.14

2024-05-13 [Kotlin+Spring 코틀린 스프링 금일 배운내용 정리]

1. @controllerAdvice VS @RestControllerAdvice2. PostgreSQL  1. @controllerAdvice VS @RestControllerAdvice두 어노테이션의 차이는 @RestController와 @Controller와의 차이점과 같습니다.@ControllerAdvice와 @RestControllerAdvice는 전역적으로 예외를 처리할 수 있는 Annotation입니다. @Controller 어노테이션이 붙은 컨트롤러에서 발생하는 예외를 처리할 수 있습니다. @ControllerAdvice와 @RestControllerAdvice의 차이점두 Annotation의 차이는 @RestController와 @Controller와의 차이점과 동일합니다. 공식 문서에 ..

카테고리 없음 2024.05.13

2024-05-10 [Kotlin+Spring 코틀린 스프링 REST API]

REST API 학습에 들어가기 전이전 글에서 Event Storming 부분을 간략하게 다루어 보았는데 그중 Command를 다시 한번 기억하고, REST API를 설명해보려 합니다.2024.05.09 - [분류 전체보기] - 2024-05-09 [Kotlin+Spring DDD 전략적 설계(Strategic Design)] 2024-05-09 [Kotlin+Spring DDD 전략적 설계(Strategic Design)]Spring 으로 들어온 순간, 개념들이 어려워서 하나 하나 잘 짚고 넘어가야 할 것 같습니다.금일 학습한 내용 중 도메인 주도 설계, DDD(Domain Driven Design)의 전략적 설계 개념이 앞으로 학습하는데 매hongjinkwon.tistory.comCommand는 Do..

카테고리 없음 2024.05.10

2024-05-09 [Kotlin+Spring DDD 전략적 설계(Strategic Design)]

Spring 으로 들어온 순간, 개념들이 어려워서 하나 하나 잘 짚고 넘어가야 할 것 같습니다.금일 학습한 내용 중 도메인 주도 설계, DDD(Domain Driven Design)의 전략적 설계 개념이 앞으로 학습하는데 매우 중요할 것으로 보여 심화 학습을 진행해보려 합니다.구글링해보며 여러 글들을 조합하고, 강의 자료도 참고하고, 나의 주관도 들어가 있어혹시나 틀리거나 사장된 개념들이 있다면 댓글 대 환 영 입니다.. DDD(Domain Driven Design)에 기반한 기획DDD는 실제 우리가 해결하고자 하는 분야(Domain)의 핵심 문제와 비즈니스 요구사항을 이해하고, 이를 소프트웨어 모델에 명확히 반영하는 것을 최우선으로 한 소프트웨어 개발 방법론 입니다.때문에 DDD에는 요구사항을 명확하게..

카테고리 없음 2024.05.09

2024-05-08 [Kotlin+Spring DTO(Data Transfer Object), Domain Model]

DTO 그리고 Domin Model 을 학습하기 전,Web Application을 만들기 위해 필요한 요구사항들과 Spring에서 일반적으로 많이 사용하는 Layer 구조를 짚고 넘어가려 합니다.  Web Application을 만들기 위해 필요한 요구사항1. 클라이언트 혹은 Frontend Application의 요청을 처리하고 적절한 응답을 줄 수 있어야 합니다.2. 예외 처리를 할 수 있고, 예외가 발생했을 때 적절한 응답을 줄 수 있어야 합니다. (예외가 발생할 수 있는 상황을 사전에 대비)3. 인증과 인가 처리를 할 수 있어야 합니다.  인증과 인가 처리의 차이점이 무엇인가요?[인증]인증은 사용자의 신원을 검증하는 행위로서 보안 프로세스에서 첫 번째 단계입니다. 인증 프로세스는 다음과 같이 구성..

카테고리 없음 2024.05.08

2024-05-07 [Kotlin+Spring 입문 Spring 보다 자세하게 이해하고 공부하자]

Spring 개념을 뜯어보자Spring은 JAVA / Kotlin 기반의 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 Application Framework 입니다.해당 정의만 보면 이해가 잘 가지 않아, 뜯어보며 정의를 조금 더 깊숙하게 이해해보려 합니다. "JAVA / Kotlin 기반의 개발을 편하게 할 수 있게 해주는"기업에서 운영하는 웹 서비스에는 비즈니스 로직이라는 것이 있습니다. 비즈니스 로직이란 기업이 제공하는 서비스를 코드로 구현한 것으로, 사용자의 요구사항을 해결하기 위한 실질적인 코드들을 의미합니다.스프링이 등장하기 이전에는 비즈니스 로직을 구현하기 위해 기술 자체에 대한 공부를 추가적으로 해야만 했습니다. 비즈니스 로직을 구현하는 기술 자체가 복잡하고 어려웠기 때문입니다.그러나..

카테고리 없음 2024.05.07

2024-05-06 [Kotlin 코틀린 지연 초기화 "lateinit"과 "lazy"의 차이점을 정확하게 알고 계신가요?]

지연 초기화 - Kotlin 은 변수를 선언할 때 동시에 값을 무조건 설정해줘야 하는데, 값 설정을 지연 시키는 것을 지연 초기화라고 합니다.(EX. 사용자의 입력을 받아 처리해야 하는 경우)주의해야 할 부분은 변수의 값을 가지고 나와서 변수를 사용하기 전 무조건 값을 세팅하는 작업을 진행해야 컴파일 시 오류없이 동작이 가능합니다. 왜 지연 초기화를 사용할까?지연 초기화라는 이름만 들어도 어느정도 유추할 수 있는데, 초기화 작업을 극한으로 미루다가 사용자가 필요로 할 때 값 설정을 진행하는데, 이 방법을 사용함으로서 메모리 낭비를 줄일 수 있다는 장점이 있습니다. 그리고 이는 퍼포먼스의 향상으로 이어집니다.프로그램을 만들다보면 (val age: Int) 와 같은 변수를 선언하였지만, 객체의 정확한 값을 ..

카테고리 없음 2024.05.06