본문 바로가기

Spring23

Spring - @Controller, @RestController 차이 안녕하세요. 고코더 입니다. 스프링에서 대표적인 컨트롤러 어노테이션은 두 가지가 있습니다. @Controller와 @RestController입니다. 그런데 이 두 가지의 차이는 무엇일까요? 용도의 차이 @Controller는 MVC 패턴에서 View를 반환하는 역할을 해왔습니다. 대표적인 파일이 JSP와 HTML이 있습니다. 그런데 RestAPI라는 개발 방식이 유행을 타면서 데이터를 반환하는 @RestController를 사용하게 되었습니다. Spring 4.0부터 이 기능이 추가되었습니다. 아시다시피 그 데이터는 JSON이 주를 이루며 MessageConverter가 각 데이터 종류에 맞게 데이터를 반환합니다. 정리하자면 @Controller - View를 반환 @RestController - 데이.. 2022. 2. 23.
Spring - @RestController란? 안녕하세요 고코더 입니다. 이번 시간에는 @RestController를 알아보도록 하겠습니다. 요즘 많이들 사용하는 어노테이션입니다. 왜냐면 REST API가 유행이기 대세이기 때문입니다. 이 기능 덕분에 많은 개발자들이 혜택을 보고 있습니다. @RestController 기본 개념 @Controller + @ResponseBody = @RestController 아주 간단하게 설명하면 이렇습니다. @Controller와 @ResponseBody 결합된 형태입니다. 기존에는 하위 메서드에 @ResponseBody 어노테이션을 붙여서 JSON을 만들었지만, 이 기능 덕분에 이제 쉽게 알아서 전송 가능한 문자열을 만들어줍니다. @RestController 특징 - @RestControoler가 어노테이션이라.. 2022. 2. 6.
@Override 어노테이션이란? 안녕하세요. 고코더 입니다. ● 1. 이렇게 인터페이스를 참조하고 클래스를 만들 경우 @Override 가 자동으로 붙어 있습니다. 그럼 이 어노테이션은 뭔지? 어떤 기능을 하는지 알아보겠습니다. public class PrinterA implements Printer { @Override public void Printer(String message) { // TODO Auto-generated method stub } } @Override 사용하는 이유 ● 2. 부모의 클래스나 인터페이스로부터 어노테이션 바로 다음에 사용한 메서드라는 걸 말합니다. 만약 이 오버라이드 어노테이션이 없다면 부모로부터 오버 라이딩되었는지 확신할 수 없습니다. 그래서 만약 해당 어노테이션을 사용하면 컴파일러에게 부모 클래스.. 2022. 1. 30.
Spring - @RequestMapping, method 사용하기 (GET, POST, PUT, DELETE) 안녕하세요. 고코더 입니다. @RequestMapping을 사용할 때 요청을 어떻게 정의할지 정해주는 방법이 있습니다. 예를 들면 이 요청은 GET, POST, PUT, DELETE 등 CRUD에 따라 요청을 나누어 사용이 가능합니다. RequestMethod 사용법 ● 1. 방법은 단순합니다. 해당 방법처럼 RequestMethod 뒤에 방식을 정하면 됩니다. @RequestMapping(value = "/main", method = RequestMethod."방식") RequestMethod 예제 ● 2. 만약 GET 방식을 처리하고 싶다면 GET을 @RequestMapping(value = "/main", method = RequestMethod.GET) public String mainGet() .. 2021. 12. 16.
Spring - @RequestMapping 다중매핑 사용하기 안녕하세요. 고코더 입니다. ● 1. @RequestMapping를 이용해 한 개의 메서드로 여러 URI를 처리할 수 있는 방법을 알아보도록 하겠습니다. 만약 다중 매핑을 하지 않으면 이렇게 동일한 소스가 여러개를 만들어야 하는 불상사가 일어납니다. @RequestMapping("/index") public String projectInfo() { return "메인"; } @RequestMapping("/main") public String projectInfo() { return "메인"; } ● 2. 하지만 다중매핑을 이용하면 하나의 메서드로 여러 URI 호출을 처리할 수 있습니다. @RequestMapping(value = {"/","/index","/main"}) public String pro.. 2021. 12. 16.
Spring - AOP 용어/ advice 어노테이션 용어 / (2) AOP 관련 단어 정리 안녕하세요. 고코더 입니다. 이전 시간에는 AOP라는 의미에 대해 알아보았습니다. 이번 시간에는 사용하는 용어에 대해 알아보겠습니다. AOP 관련 용어 1. Aspect 기본적으로 AOP는 흩어진 Aspect들을 모아서 모듈화 하는 기법을 말합니다. 사전적으로 말하며 흩어진 관심사를 모듈화 한 것입니다. 부가기능을 모듈화 합니다. 2. Target 타겟은 Aspect할 대상을 말합니다. 핵심 기능을 담고 있는 모듈들은 부가기능을 부여할 대상이 됩니다. 3. Advice 실질적인 부가기능을 구현한 구현체를 말합니다. 어떤 동작을 해야할지 대한 것들입니다. 4. Joint Point Advice가 적용될 위치에서 끼어들 수 있는 지점을 말합니다. 다양한 시점에 적용가능 합니다. (ex.. 2020. 3. 19.
Spring - POJO란? / 탄생배경 / 특징 / 기반 Plain old Java object 란? 안녕하세요. 고코더 입니다. 오늘인 POJO라는 개념을 알아봅니다. 개인적으로 몰라도 될거 같은 개념이지만 면접자들은 이걸 질문하기 좋아하므로 알아봅니다. 이 개념은 철학에 가깝습니다. 물런 구체화 하면 특정 방식의 소스가 POJO가 됩니다. ● 1. POJO란 한줄로 표현하면? "프레임워크에 종속된 무거운 객체를 만들게 된 것에 반발해서 사용되게 된 용어" ● 2. 탄생 배경 마틴 파울러는 자바의 단순한 오브젝트를 이용하여 로직을 구현하는게 나은데 왜 EJB처럼 복잡하고 제한 많은 기술을 이용할까? 라는 의문이 들었습니다. 마틴은 그저 그럴싸한 이름이 없는게 원인 일까 싶어 POJO를 만들었습니다. 평범한 자바오브젝트에 멋진 이름을 붙여줬던 시도는 기대 이상.. 2020. 3. 19.
Spring - 의존성 주입(DI) 이란? / 제어의 역전(IoC) 이란? Dependency Injection , Inversion of Control 를 알아보자 안녕하세요. 고코더 입니다. 오늘은 의존성 주입(Dependency Injection)을 다뤄봅니다. 스프링의 핵심 개념중에 하나 입니다. 스프링에서 가장 중요한 핵심입니다. 이 부분때메 자바 서블릿을 하다. 스프링을 만나면 헤매게 되는 이유입니다. 100프로 이해하려면 현업에서 장점을 마주칠때 이해가 조금씩 되나 머리속에 잘들어오지 않는 개념입니다. 그러므로 그냥 얘는 원래 이러구나라고 생각하면 될거 같습니다. ● 1. DI를 한줄로 요약하면 "객체간의 의존성을 외부에서 주입하는 개념" ● 2. 비유 최근에 생긴 오락실을 가니깐 동전 넣는 부분이 없습니다. 그래서 물어보니 목에 매는 카드를 하나 줍니다. 이걸 가.. 2020. 3. 19.
Spring - AOP 란? / 관점 지향 프로그래밍 / (1) 관점으로 본 AOP 안녕하세요. 고코더 입니다. OOP는 훌륭한 객체 프로그래밍입니다. 하지만 공통적으로 트랜잭션처럼 반복되는 중복코드가 생기는 단점이 있습니다. 중복코드를 좀 더 줄이고자 하여 탄생한게 AOP 입니다. Aspect Oriented Programming 의 약자입니다. 직역하자면 "관점 지향 프로그래밍" 이라고 할 수 있습니다. 오늘은 AOP가 어떤 관점이 있는지 알아봅니다. ● 1. AOP를 한줄로 정리하면? "애플리케이션 전체에 걸쳐 사용되는 기능을 재사용 하도록 지원하는 개념" ● 2. 비유 병원에 환자가 입원합니다. 맹장 수술이 필요하다고 합니다. 전날에 약을 먹고 금식을 지도하는걸 간호사가 합니다. 그리고 당일날 수술실에 환자를 눕히고 조명을 밝히고 수술 부위 소독과 매스까지 준.. 2020. 3. 19.