@Enumerated ?
·
Spring/Annotations
Inflearn 강의 도중 @Enumerated 라는 어노테이션을 마주했고이는 처음보는 어노테이션이었기에 짚고 넘어가고 싶었습니다. 마주한 코드는 다음과 같습니다.@Enumerated@Enumerated는 JPA(Java Persistence API)에서 사용되는 어노테이션으로,Enum 타입을 데이터베이스에 매핑할 때 사용됩니다. Enumerated 어노테이션은 (EnumType.String) 구문을 통해서Enum 타입을 데이터베이스 컬럼에 Enum 값을 숫자(Ordinal)로 저장할지, 문자열(String)로 저장할지를 결정하고,JPA 엔티티 클래스에서 Enum 필드를 데이터베이스와 매핑할 때 필요하게 됩니다.@Enumerated의 주요 옵션@Enumerated는 EnumType이라는 설정값을 통해 작..
공통 응답 포맷이란 무엇인가?
·
Spring/Spring MVC
API를 설계하거나 프로젝트를 진행하면서 "공통 응답 포맷"이라는 개념을 들어본 적이 있을 겁니다. 그렇다면 왜 공통 응답 포맷이 필요할까요? 이를 이해하기 위해 일상 속의 사례를 떠올려보죠.만약 배달 음식을 주문했는데, 한 번은 포장지가 빨간색이고 한 번은 파란색, 또 다른 날은 포장지가 아예 없는 경우를 상상해보세요. 음식의 품질은 같을지 몰라도, 포장의 일관성 없는 모습은 불편함을 줄 것입니다. API도 마찬가지입니다. 응답 형태가 매번 달라지면 클라이언트 개발자는 이를 처리하기 위해 불필요한 작업을 반복하게 됩니다. 공통 응답 포맷은 이러한 혼란을 방지하고, API 사용자(주로 클라이언트 개발자)와의 원활한 소통을 가능하게 합니다.1. 공통 응답 포맷이 없다면?공통 응답 포맷이 없다면 어떤 일이 ..
Lombok 에 대해서
·
Spring
개인토이 프로젝트를 진행하면서 마주치는 여러 Lombok 어노테이션들을 보며 어떠한 어노테이션들이 존재하고 정확히 롬복은 어떤것인지 궁금하여 작성하게 되었습니다. Lombok 이란?Lombok은 Java 개발에서 반복적으로 작성해야 하는 코드를 자동으로 생성해주는 라이브러리라고 합니다.주로 @Getter @Setter @ToString 등 자주 작성하는 메서드와 생성자를 자동으로 생성해 코드의 간결성을 높이고, 유지보수를 용이하게 해주었고. 이미 Java의 생산성을 크게 향상시킬 수 있는 도구로 널리 사용되고 있습니다.Lombok의 주요 특징 코드 간결화자주 반복되는 보일러플레이트 코드(예: getter, setter, toString, 생성자 등)를 자동으로 생성하여 코드량을 줄이고 가독성을 높입니다...
Stream
·
Spring
Stream이란 무엇인가 Stream은 대량의 데이터를 효과적으로 처리할 수 있도록 도와주는 데이터 처리 파이프라인이다. Stream을 활용하면 데이터를 선언적으로 처리할 수 있으며, 특히 병렬 처리와 함수형 프로그래밍 스타일을 지원하여 성능과 코드 가독성을 동시에 높일 수 있다.Stream의 가장 큰 특징은 지연 평가(lazy evaluation)다. 이는 중간 연산이 바로 실행되지 않고, 최종 연산이 호출될 때 비로소 모든 연산이 수행된다는 것을 의미한다. 이로 인해 불필요한 연산을 줄이고 성능을 최적화할 수 있다.Stream은 람다식과 함께 사용되며, 데이터를 필터링, 매핑, 정렬 등의 작업을 간단하고 직관적으로 처리할 수 있다. Stream의 작동 원리 예를 들어, List에 [1, 2, 3, 4..
SOLID 객체지향설계 5원칙
·
Spring
SRP : 단일 책임 원칙 OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존관계 역전 원칙 단일책임개방폐쇄리스코프치환인터페이스분리의존관계역전 SRP -- 단일 책임 원칙 (한클래스에 하나의 책임) 한클래스에 하나의 책임. 하나의 책임이란 모호함. 클 수 있고 작을 수 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경, 변경이 있을 때 파급효과가 적으면 단일책임 원칙을 잘 따른 것. 예) UI변경, 객체의 생성과 사용을 분리. OCP -- 개방 - 폐쇄 원칙 (확장에는 열리고 변경에는 닫혀라) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 이런 거짓말 같은 말이? 확장을 할려면, 당연히 기존코드를 변경해야..? 다형성을 활용..