springboot

1. 어노테이션 기반으로 개선 일반적인 프로그래밍에서 같은코드가 반복적되는 부분은 대표적으로 개선이 필요한 나쁜코드이다. 같은 코드를 계속해서 복사/붙여넣기로 반복하게 된다면 이후 수정할 때에도 모든 부분을 하나씩 찾아가며 수정해야한다. 이럴 경우 유지보수성이 떨어질 수 밖에 없고, 만약 수정이 반영되지 않은 반복 코드가 있다면 문제가 발생할 수 밖에 없다. 앞서 만든 코드중 IndexController에서 세션을 가져오는 부분을 개선할 필요가 있다. SessionUser user = (SessionUser) hyttpSession.getAttribute("user"); index 메소드 외에 다른 컨트롤러와 메소드에서 세션값이 필요하면 그때마다 직접 세션에서 값을 가져와야 한다. 같은 코드가 계속해서 ..
1. 스프링 시큐리티와 스프링 시큐리티 OAuth2.0 클라이언트 스프링 시큐리티는 막강한 인증과 인가 기능을 가진 프레임워크로, 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준으로 보면 된다. 스프링의 대부분 프로젝트들처럼 확장성을 고려한 프레임워크이다 보니 다양한 요구사항을 손쉽게 추가하고 변경할 수 있다. 많은 서비스에서 왜 소셜 로그인을 사용하는 걸까? 직접 구현 시에는 로그인 시 보안, 회원가입 시 이메일 혹은 전화번호 인증, 비밀번호 찾기, 비밀번호 변경, 회원정보 변경을 모두 구현해야한다. 이를 모두 구글, 페이스북, 네이버등에 맡기게 되면 서비스 개발에 집중할 수 있기 때문이다. 2. 구글 서비스 등록 구글 서비스에 신규서비스를 생성해야한다. 여기서 발급된 인증정보(clientId..
1. 템플릿 엔진 - 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 - ex ) JSP, Freemarker(서버템플릿 엔진), React, View(클라이언트 템플릿엔진) 자바스크립트에서 JSP나 Freemarker처럼 자바코드를 사용할 수는 없나요? FE의 자바스크립트가 작동하는 영역과 JSP가 작동하는 영역이 다르다. JSP 및 Freemarker은 주로 서버에서 동적 컨텐츠를 생성하고 이를 클라이언트로 보내는데 사용되는 서버 측 기술이고, 자바스크립트는 브라우저에서 실행되는 클라이언트 측 스크립트 언어이다. 서버에서 Java코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달하는데, 이 때 자바스크립트 코드는 단순한 문자열이기에 코드로서 동작하지 않는..
보통 Entity에는 해당 데이터의 수정시간과 생성시간을 포함한다. 언제 만들어지고 수정되었는지는 차후 유지보수에 있어서 매우 중요한 정보이다 매번 DB에 삽입 전, 갱신 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가면 귀찮고 코드가 지저분 해짐. 이를 해결하고자 JPA Auditing을 사용 1. JPA Auditing Auditing을 사용하면 Entity를 누가 언제 생성/수정했는지 자동으로 기록하게 할 수 있다. 2. JPA Auditing 적용하기 1) BaseTimeEntity.java @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public class BaseTimeEntity { @Created..
API를 만들기 위해서는 3개의 클래스가 필요하다. 1) Request 데이터를 받을 Dto 2) API 요청을 받을 Controller 3) 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 1. Spring 웹 계층 1) Web Layer - 흔히 사용하는 컨트롤러(Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역 - 이외에도 필터(@Filter), 인터셉터, 컨트롤러(@ControllerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 의미 2) Service Layer - @Service에 사용되는 서비스 영역 - 일반적으로 Controller와 Dao의 중간 영역에서 사용된다 - @Transactional이 사용되어야 하는 영역 * DAO : Data Ac..
1. 롬복 소개 1) 롬복이란? - 자바 개발할 때 자주 사용하는 코드 Getter, Setter, 기본 생성자, toString등을 어노테이션으로 자동 생성해주는 라이브러리 2) 롬복의 장단점 (1) 장점 - Lombok은 복잡하고 반복되는 코드를 어노테이션 기반의 코드 자동생성으로 생산성 향상되고 코드가 축소되어 가독성 및 유지보수성을 높일 수 있습니다. (2) 단점 - 코드가 직접 눈에 보이는 것이 아니라 직관성이 떨어질 수 있다. 2. 롬복 설치 IntelliJ 2020.03 버전 이후로는 Lombok 라이브러리가 기본 Plugin으로 설치되어 있기 때문에 dependencies와 설정만 바꿔주면 된다. 1) dependencies 변경 * Gradle 버전이 올라가면서 Lombok 의존성을 추가..
** 책에 있는 버전이 구버전이기에 23년도 신버전으로 다시 재구성해 도전 ! 1. Gradle - Build system 중 하나로 소스 코드를 이용해서 실행 가능한 애플리케이션을 생성하는 과정을 자동화하는 프로그램 - 의존성 내려받기, 코드 패키징, 컴파일, 테스트 실행 등이 포함 1) 특징 - XML 형식으로 작성되는 Maven에 비해 가독성이 좋고 설정이 간단 - 자바, 코틀린, 그루비 등 다양한 언어 지원, 원하는 대로 빌드 스크립트 작성 가능 - 빌드와 테스트 속도가 Maven에 비해 더 빠름 2. Gradle 프로젝트를 스프링 부트 프로젝트로 변경하기 1) Plugin 변경 plugins{ id 'java' id 'org.springframework.boot' version '2.6.0' /..
빨간망토감자도리
'springboot' 태그의 글 목록