Spring Boot 19

[Spring boot] 관점 지향 프로그래밍(AOP)

관점 지향 프로그래밍(AOP : Aspect-Oriented Programming)객체지향 프로그래밍(OOP : Object-Oriented PRogramming)과 다른 것AOP란?AOP는 관점을 기준으로 묶어 개발하는 방식을 의미 == 핵심 로직과 부가 기능을 분리해서 코드를 깔끔하게 관리하는 방식여기서 관점(aspect)이란 어떤 기능을 구현할 때 그 기능을 ‘핵심 기능’과 ‘부가 기능’으로 구분해 각각을 하나으로 보는 것을 의미그럼 ‘핵심 기능’과 ‘부가 기능’의 의미를 알아보자핵심 기능비즈니스 로직을 구현하는 과정에서 비즈니스 로직이 처리하려는 목적 기능을 말한다.ex → 클라인어트로부터 상품 정보 등록 요청을 받아 DB에 저장하고 그 상품 정보를 조회하는 비즈니스 로직을 구현했다면 (1) 상품..

[Spring boot] 의존성 주입(DI)

의존성 주입(DI)의존성이란?MyController는 MyServiceImpl에 의존 ****하고 있다. 즉, 동작하기 위해 다른 객체가 필요한 상황 == "의존성"public class MyController { private MyService service = new MyServiceImpl();} 의존성 주입이란?제어 역전의 방법 중 하나로 사용할 객체를 직접 생성 하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식 의미스프링에서 의존성을 주입받는 방법 세 가지생성자를 통한 의존성 주입필드 객체 선언을 통한 의존성 주입세터(setter) 메서드를 통한 의존성 주입스프링에서는 @Autowired라는 애너테이션(annotation)을 통해 의존성을 주입할 수 있다. 1. 생성자를 통..

[Spring boot] 제어 역전(loC)

일반적인 자바 개발의 경우 객체를 사용하기 위해 다음과 같은 코드를 사용함public interface MyService { public String getHello();}@Servicepublic class MyServiceImpl implements MyService { @Override public String getHello() { return "Hello"; }}@RestControllerpublic class NoDIController { private MyService service = new MyServiceImpl(); // 직접 생성 @GetMapping("/no-di/hello") public String getHello() { ..

[Spring boot] 카카오 로그인 Oauth 2.0

카카오 디벨로퍼 사이트 접속Kakao Developers Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 내 애플리케이션에서 앱 이름, 사업자 정보 등 기입 사업자 정보는 그냥 앱이름이랑 같이했음이렇게 4가지가 있는데 REST API 키를 복사한다 이게 서버에서 사용할 client-id값이 된다.밑에 플랫폼에 들어가서 이렇게 작성 이제 여기에 들어가주면 됨동의 항목 설정이메일도 필요하니이제 활성화 설정을 on을 해주고리다이렉트 url을 이렇게 작성하는데 밑 처럼 작성을 한다.Spring OAuth2 Client 라이브러리를 사용하면 기본적으로 Red..

[Spring boot] 폴더 구조

Model2 구조임Spring Boot에서 Model2 방식(MVC 패턴)을 사용하는 전형적인 예제각 기능이 별도의 패키지로 분리되어 있고, 이는 Model2 구조의 핵심 개념인 역할의 분리를 잘 나타낸다 Controller 패키지: 이 패키지는 사용자의 요청을 받아 처리하는 컨트롤러 클래스들을 포함. 컨트롤러는 요청을 처리하고, 필요한 데이터를 서비스 계층에 요청한 후, 결과를 뷰에 전달하는 역할Service 패키지: 이 패키지는 비즈니스 로직을 처리하는 서비스 클래스들을 포함. 서비스 계층은 컨트롤러와 모델(Entity) 사이에서 비즈니스 규칙을 적용하거나 데이터를 가공하는 역할Repository 패키지: 이 패키지는 데이터베이스와의 상호작용을 담당하는 리포지토리 클래스들을 포함합니다. 모델(Enti..

백엔드 MVC 패턴

Web Application ArchitectureJSP를 이용하여 구성할 수 있는 웹 어플리케이션 아키텍쳐는 크게 model1과 model2로 나뉜다JSP가 클라이언트의 요청에 대한 logic 처리와 response page(view)에 대한 처리를 모두 하는지.response page(view)에 대한 처리만 하는지JSP란?javaServer Pages의 약자HTMl 코드에 java코드를 넣어 동적웹페이지를 생성하는 웹 어플리케이션 도구JSP가 실행되면 자바 서블릿(Servlet)으로 변환 되어 웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행 하고 그렇게 생성된 데이터를 웹페이지와 함꼐 클라이언트로 응답한다.용어를 공부 좀 해보자웹(Web)인터넷 기반의 정보기술 → World Wide Web의..

[Spring boot] Logger 설정

logback-spring.xml 파일 만들기 application.properties###LOGGER#이 설정은 Hibernate가 생성하는 SQL 쿼리를 포맷팅하여 출spring.jpa.properties.hibernate.format_sql=true#이 설정은 Hibernate가 실행하는 SQL 쿼리를 DEBUG 레벨로 로깅logging.level.org.hibernate.SQL=DEBUG#설정을 통해 쿼리에 전달되는 실제 파라미터 값을 로그로 확인logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE logback-spring.xml %yellow(%d{ISO8601}) %..

[Spring boot] Mac 환경세팅 및 postgreSQL 연결

여기에 들어가면 spring boot를 쉽게 환경 세팅할 수 있다start.spring.io  이거 만들고 난 후 인텔리J 내가 만든 Kkrap-backend 폴더 안에 넣어주면 된다인텔리J로 만들어진 폴더를 열기만 하면 된다.켰더니 이런 경고 창이 뜬다  해결 방법은 stack overflow에서 찾음https://stackoverflow.com/questions/40448344/errorjava-invalid-flag-release Error:java: invalid flag: -releaseI use Java : Java(TM) SE Runtime Environment (build 9-ea+143) Java HotSpot(TM) 64- Bit Server VM (build 9-ea+143, mixe..