본문 바로가기

전체 글127

의존성 주입(DI)이 뭘까? DI(Dependency Injection) 스프링 용어를 찾아보다보면 가장 먼저 접하고 매우 빈번하게 보게 되는 단어가 바로 DI다. 의존성 주입. 이게 대체 뭘 하는 녀석일까? 이것에 대해 설명하려면 IoC Container라는 스프링의 핵심 구성요소에 대해 알아야 한다. 설명하자면 시간이 오래 걸릴테니, 시간이 부족한 분들을 위해 정말 간략하게 IoC Container가 뭔지 설명을 하자면, 제어 반전 컨테이너(Inversion of Control Container)의 약자로, 오브젝트를 관리해주는 스프링의 객체인 BeanFactory 또는 ApplicationContext를 이용해서 사용자가 만든 객체를 자동으로 호출해 Bean으로 등록해 사용하게 해주는 것을 말한다. 여기서 핵심은, 일반적으로 .. 2021. 11. 28.
@Controller는 뭘까? @Controller 스프링 입문자로써 아마 무작정 무언가 실습을 해보면서 기능들을 익혀나가는 경험을 다들 했을 것이다. 나도 이 단계에 속하는데, Controller 클래스에 @Controller 어노테이션을 붙이면 마법처럼 URL을 입력하면 이쪽으로 인도되고 작업이 처리되는 마법같은 경험을 하면서 편함을 느끼고 감사하다는 마음도 들지만 동시에 대체 뒤에서 무슨 일이 일어나고 있는 것인지 깊은 의문이 생기곤 한다. 코드 뒤에서 작은 난쟁이들이 뚝딱뚝딱 만들어주는 것은 아닐 것이지 않은가. 아 물론 엄밀히 따지자면 스프링이 해주고 있긴 한데..... 본론으로 들어가서, @Controller가 무슨 역할을 하는지 설명하려면, 먼저 @Controller가 없으면 우리가 이 기능을 구현하기 위해 무엇을 해야 .. 2021. 11. 26.
Controller는 뭘 하는 녀석일까? 먼저 요약하자면, Controller - Service - Repository 구조에서 클라이언트의 요청(Request)에 대한 응답(Response)를 수행하는 역할을 전담하는 녀석이다. 즉 언제나 사용자와 맞닿아 있고, 사용자가 그 너머를 볼 수 없게 하는(인지하지 못 하게 하는) 역할을 한다고도 말 할 수 있다. 개발자 입장에서는 백엔드 개발 요청에 대해 Request와 Response를 어떤 방식으로 할 것인지를 일차적으로 정의해볼 수 있는 공간이 될 것이다. Controller 스마트폰으로 예를 들어보자면, 전원을 켜고 끄는 것, 앱 목록을 여는 것, 채팅 앱을 실행하는 것, 채팅창을 여는 것, 그 안에서 키보드를 사용해 글을 쓰는 것, 작성한 문자를 버튼을 눌러 전송하는 것 전부 사용자의 컨트.. 2021. 11. 26.
@RequestBody는 왜 Setter가 없어도 작동할까? POST 타입의 요청을 처리할 때, @RequestBody 어노테이션이 선언된 파라미터에는 Setter 선언을 해주지 않아도 된다. @PostMapping("/board/post") @ResponseBody public Board posting(@RequestBody BoardDto boardDto) { return boardService.posting(boardDto); } @Getter public class BoardDto { private String title; private String author; private String content; } // 멀쩡하게 잘 작동한다. @Request Body에서는 Setter가 필요없다? 회사에서 근무하던중 새로오신 신입 개발자분이 저에게 하나의 질문을.. 2021. 11. 24.
알고리즘 푼 것들은 이제 깃헙에 올림 GitHub - Zabee52/study: 공부한 각종 내용들을 정리해놓은 곳입니다. 공부한 각종 내용들을 정리해놓은 곳입니다. Contribute to Zabee52/study development by creating an account on GitHub. github.com 티스토리 편집기 너무 불편해서 못 쓰겠다는 이유임니다... 2021. 11. 19.
항해99 11/19(금) 스프링 TIL 11/16(화) 내용 중... 2. Bean 설정파일에 직접 등록 -> @Component 어노테이션을 사용하는 어노테이션인 @Configuration을 이용해 직접 등록해줄 수 있다. @Configuration public class SampleConfiguration { @Bean public SampleController sampleController() { return new SampleController; } } 1.은 클래스 단위, 2.는 메소드 단위에서 등록한다는데, 둘의 차이점은 직접 구분해서 써야하는 상황을 맞이해봐야 알 것 같다..... 이 부분, Bean 설정파일에 등록했을때의 이점을 알아왔다! 예를 들어, RDB를 무엇으로 설정할지 결정하지 못 한 상태라면, 일단 테스트는 해야하니 .. 2021. 11. 19.