본문 바로가기

전체207

[Spring] 의존성 주입의 세 가지 방법 @Deprecated 이 글은 오래되었으며, 제가 이후 더 공부하고 나서 새로 작성한 글이 있습니다. 이 글보다 더 자세하고 깊이 있게 작성되어 있으니 새로 작성한 글을 참고해 주세요! (2022. 07. 11) 앞서 스프링의 의존성 주입에 대한 글을 몇 가지 쓴 바 있습니다. (IoC와 DI, 테스트 코드와 의존성 주입, Bean 의존 관계 설정) 이러한 의존성을 주입하는 방법이 대표적으로 세 가지가 있는데요. 각 세 가지 방법에 대해 다루어 보고자 합니다. 1. 필드 주입 2. setter 주입 3. 생성자 주입 1. 필드 주입 필드 주입은 아래와 같은 방식으로 이루어집니다. public class PurchaseController { @Autowired private PurchaseService p.. 2022. 3. 10.
[프로그래머스] 단체사진 찍기 난이도: Level 2 문제 링크: https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 8명의 사람이 줄을 설 때, 주어진 조건을 만족하는 경우의 수를 세는 문제입니다. 아무 조건이 없을 때, 8명의 사람이 줄을 설 수 있는 경우의 수는 8! = 40320 이 됩니다. 따라서 모든 경우의 수를 탐색해 보기에 크게 문제가 되지 않습니다. 조건의 수는 최소 1개에서 최대 100개가 주어집니다. 두 사람 A와 B 사.. 2022. 3. 10.
[Spring] Bean 등록 및 의존 관계 설정하기 개요 Spring에서는 객체를 bean (빈)이라는 이름으로 부릅니다. 이러한 bean은 Spring이 시작할 때 Spring container에 등록되어, Spring에 의해 관리되고 쓰여집니다. 앞서 스프링의 MVC 구조에 의해 언급했었는데요. View에 원하는 내용을 그리기 위해서는 Controller를 작성해야 합니다. Controller는 Service에 작성된 메소드를 호출하여, 요구되는 역할을 수행합니다. Service는 Repository에 접근하여, 데이터를 읽어 오거나, 저장 및 수정합니다. 만약 특정 사이트의 상품 주문 기능이 있다면, Controller는 View를 이용해 화면을 나타내는 역할을 합니다. Controller는 Service를 이용해서 실제 주문을 수행하고, Servi.. 2022. 3. 9.
[Spring] 스프링에서의 테스트 코드와 의존성 주입 의존성 주입 (Dependency Injection; DI)에 대해 글을 작성한 바 있습니다. (글은 여기를 참고) 실제로 의존성 주입이 언제 발생하는지 예시를 하나 들어서 설명해 보고자 합니다. Service 및 테스트 코드 작성 아래와 같은 Service 클라스가 있다고 합시다. MemberService.java public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원 가입 public Long join(Member member) { //같은 이름이 있는 중복 회원 X validateDuplicatedMember(member); //중복 회원 검증 mem.. 2022. 3. 5.
[Spring] 스프링 웹 개발의 기초 개요 지금까지 Spring Boot를 이용해 간단한 서비스를 만드는 과정을 체험해 보았고, 어렴풋이 Spring 개발은 어떻게 진행되고, 어디에 어떤 클라스를 작성하는지 알게 되었습니다. Spring을 어느 정도 체감하였으니, 이제 내부 구조, 동작 방식 등 이론적인 내용을 알아볼 때라고 생각됩니다. Spring으로 웹 서비스 개발을 할 때, 컨텐츠를 보여 주는 방법은 크게 세 가지가 있습니다. 정적 컨텐츠 MVC API 이 세 방식에 대해 각각 간단한 소개를 해 보려고 합니다. 더 자세한 내용인 추후 공부하며 알아갈 예정입니다. 정적 컨텐츠 정적 컨텐츠라고 함은, 변화가 없는 컨텐츠를 뜻합니다. 사진, 문서 등 있는 그대로를 보여주는 것을 정적 컨텐츠를 보여준다고 하며, 어떤 사용자가 와도 같은 내용을.. 2022. 3. 3.
2022년 8번째 주 (02.21 ~ 02.27) TWIL 이번주 TWIL은 너무 늦게 썼다. 반성 좀 하고... ㅠㅠ 월요일에 연차를 써서 화요일까지 쭉 쉬었는데, 토, 일요일은 개발하느라 정신이 없었고 월, 화는 쉬고 논다고 (...) 정신이 팔렸다가 TWIL을 늦게 쓰게 되었다. 이번주에야말로 꼭 TWIL은 일요일에 쓰는 걸로... 지난 목표 달성 현황 그래도 이번주는 분명 열심히 살았다! 위 목표 현황은 일요일 (27일)까지의 달성 현황이다. 열심히 살았음은 확실하다. 완료 내용: 4일 이상 CRUD 게시판 프로젝트 개발 Assert에 대해 글 쓰기 Log4j2 도입 TDD 방법론 CRUD 게시판 프로젝트 글 작성 스프링부트 웹개발 9-2, 10장 글 작성하기 네이버파이낸셜 경력1일 공채 지원 위 내용을 완료했다. CRUD 게시판 프로젝트 글 작성 내용에.. 2022. 3. 3.