목록개념정리 (16)
밍쎄의 코딩공간
단순하게 가닥을 잡아본 것. 1. 엔티티 클래스 생성 import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import java.time.LocalDate; @Entity public class Dividend { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String companyName; private LocalDate dividendDate; private double amount; // gette..
간략하게 정리해본 계좌(Account)만들기 1. 프로젝트 생성 및 의존성 추가: 스프링 부트 프로젝트를 생성합니다. Spring Initializr (https://start.spring.io/)를 사용하거나 스프링 부트 CLI를 이용할 수 있습니다. 프로젝트 설정에서 사용할 언어, 빌드 도구, 의존성 등을 선택합니다. 계좌 생성에는 Spring Web과 Spring Data JPA 등의 의존성이 필요합니다. 이를 pom.xml (Maven) 또는 build.gradle (Gradle) 파일에 추가합니다. 2. 데이터베이스 모델의 정의 : Account라는 이름의 클래스를 생성하여 계좌 정보를 표현하는 모델 클래스를 만듭니다.데이터베이스 모델 정의: @Entity public class Account ..
MemberService public interface MemberService { Member findById(MemberId id); Member findByEmail(Email email); void changePassword(PasswordDto.ChangeRequest dto); Member updateName(MemberId id, Name name); } 위 와 같은 인터페이스는 좋은 구조라고 생각지 않습니다. 우선 인터페이스를 두어서 얻는 이점은 세부 구현체를 숨기고 인터페이스를 바라보게 함으로써 클래스 간의 의존관계를 줄이는 것, 다형성을 사용 하는 것 이 핵심이라고 생각합니다. 조금 더 쉽게 정리하면 하나의 인터페이스를 구현하는 여러 구현체가 있고 기능에 따라 적절한 구현체가 들어가서 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A7XbE/btsrNmOW3mr/QSNP7Oy19fmenKcc6yxfH0/img.png)
싱글톤 컨테이너 웹 애플리케이션과 싱글톤 @Test @DisplayName("스프링 없는 순수한 DI 컨테이너") void pureContainer() { AppConfig appConfig = new AppConfig(); MemberService memberService1 = appConfig.memberService(); MemberService memberService2 = appConfig.memberService(); System.out.println("memberService1 = " + memberService1); System.out.println("memberService2 = " + memberService2); Assertions.assertThat(memberService1).is..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bb2i0m/btsrNx3ZERc/cETkVkx24fAef0JXy09WOK/img.png)
스프링 부트란? 스프링을 편리하게 사용할 수 있도록 지원하는 프레임워크입니다. 이 툴을 사용하면서 제가 와닿는 강점은 아래와 같습니다. 그렇다면 스프링의 핵심 개념은 무엇일까요? 본질적으로 스프링은 자바 언어 기반의 프레임워크입니다. 따라서 객체 지향이라는 강력한 특징을 살려낼 수 있는, 즉 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 역할을 해줍니다. 객체 지향의 특징 이어서 객체 지향이 어떤 특징을 갖고 있는지 알아보면서, 이를 스프링에서는 어떻게 지원하는지 확인해보겠습니다. 객체 지향 프로그래밍의 의미는 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위인 객체들의 모임으로 파악하고자 하는 것입니다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있습니..
깊이 우선 탐색(DFS, Depth-First Search)은 그래프를 탐색하는 알고리즘 중 하나로, 한 경로를 따라 최대한 깊이까지 탐색한 후, 다음 경로로 이동하는 방식이다. DFS는 스택(Stack)이나 재귀(Recursion)를 사용하여 구현할 수 있다. 주로 그래프의 탐색, 경로 찾기, 연결 요소 확인 등에 활용된다. DFS의 작동 방식 출발 노드 선택: 시작 노드를 선택하고, 해당 노드를 방문한 것으로 표시한다. 인접한 미방문 노드 탐색: 선택한 노드의 인접한 미방문 노드 중 하나를 선택한다. 선택한 노드로 이동: 선택한 노드로 이동하여 그 노드를 방문한 것으로 표시한다. 이동한 노드의 인접 미방문 노드 탐색: 이동한 노드의 인접한 미방문 노드 중 하나를 선택하여 이동한다. 반복: 이동한 노드..