기술/Spring-Boot22 JPA에서 쓰는 페이징(Paging) 기법이 뭘까? 페이징(Paging) 가끔 궁금한 생각이 들었을 것이다. 커뮤니티의 게시판이나, 구글의 검색 결과는 페이지로 구분이 되는데, 이건 어떤 원리로 동작하는걸까? 라는 궁금증 말이다. 한 걸음 더 나아가서, 이런 기능들을 개발자들이 많이 원하고 있는데, 과연 스프링부트에서 지원하지 않고 있을까? DB에서 지원하지 않고 있을까? 하는 생각을 품어본 적이 있을 것이다. 나도 그랬다. 그래서 찾아보니 실제로 이 기능을 지원해주고 있었다. 이게 바로 페이징(Paging) 이다. 우선, 지원하는 페이징이 아니라 실제 페이징은 어떻게 구현되고 있는지를 알아야 이해하는데 도움이 될 것이다. 기본적으로 페이징이라는 것은, 데이터베이스에 한정된 양의 레코드를 요청하는 것을 말한다. 전체를 찾되, 정해진 양 만큼만 찾도록 요청.. 2021. 12. 9. @Autowired는 왜 별로일까? @Autowired 스프링에서 의존성을 주입하는 방법은 여러가지가 있다. 의존성 주입이 뭔지 잘 모르겠다고? 이걸 보고오면 된다. 의존성 주입(DI)이 뭘까? DI(Dependency Injection) 스프링 용어를 찾아보다보면 가장 먼저 접하고 매우 빈번하게 보게 되는 단어가 바로 DI다. 의존성 주입. 이게 대체 뭘 하는 녀석일까? 이것에 대해 설명하려면 IoC Container라는 dazbee.tistory.com 아무튼, 여러가지 방법 중, @Autowired는 필드 또는 메소드에 생성자를 자동으로 주입해주는 녀석이다. 근데, 이 편리한 기능. 쓰면 별로 안 좋다고 한다. 왜 그럴까? 결론부터 말하자면, 런타임 시점에 도달하기 전까지는 감지할 수 없는 문제가 발생할 수 있기 때문이다. 그게 뭐냐.. 2021. 11. 28. 의존성 주입(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. 이전 1 2 3 4 다음