본문 바로가기

스프링부트5

Spring Boot 초기 설정 Group - 우리가 개발하고자 하는 회사이름, 팀의 이름 정보 보통 도메인 이름을 사용하고 있기때문에 나중에 패키지 이름으로 같이 사용될 수 있음 Atifact - 개발하고자 하는 프로그램의 이름이나 어플리케이션의 이름 Type - Maven, Gradle Packaging - 다른 별도의 웹어플리케이션에 배포될 경우 : War 독립적으로 임베드된 어플리케이션 서버에 사용할 경우 : Jar 요즘은 Jar로 하는 경우가 많다고 들음. Next를 누르면 초기 Dependancies 선택 가능 본인이 사용하고 싶은 Dependancy를 추가하면 된다 Maven의 경우 pom.xml 에서 설정 변경 가능하다 Spring Reactive Web은 스프링 5에서 새롭게 지원되는 flux, mono 같은 웹5 개발.. 2022. 8. 18.
Spring Security 간단 적용 애플리케이션을 만들기 위해서는 보통 인증/인가 등의 보안이 필요합니다. 스프링 시큐리티는 스프링 기반의 애플리케이션을 위한 보안 솔루션을 제공합니다. 인증 웹에서 인증이란 해당 리소스에 대해서 작업을 수행할 수 있는 주체인지 확인하는 것 예를들어 커뮤니티 사이트에서 게시판의 글을 보는 것은 로그인을 하지않아도 되지만, 댓글을 작성하려면 로그인을 해야하기때문에 인증이라는 절차가 필요하다. 인가 인증 과정 이후에 일어나는 일로 커뮤니티를 관리하는 관리자 페이지에는 관리자만 접근할 수 있고 일반 사용자의 접근을 막아야한다. 이때 접근하는 사용자가 관리자 페이지 URL에 대해서 인가된 회원인지를 검사하는 것이다. maven으로 security dependency를 추가하였다. org.springframework.. 2022. 8. 1.
Spring Boot 와 JWT JWT는 JSON 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token이라고 정의할 수 있다. JWT를 이용하는 방식은 헤비하지 않고 아주 간편하고 쉽게 적용할 수 있어서 사이드 프로젝트를 진행할 때 유용하다. JWT의 장점 중앙의 인증서버 의존성 없음 데이터 스토어에 대한 의존성 없음 시스템 수평 확장 유리 Base64의 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header 모두 사용 가능 JWT의 단점 Payload의 정보가 많아지면 네트워크 사용량 증가 -> 데이터 설계 고려 필요 토큰을 클라이언트에 저장 -> 서버에서 토큰을 조작할 수 없음 실습을 진행중인데 어려워서 좀 더 공부하고 적어야 할듯 싶다. 2022. 7. 20.
JPA 회원, 상품 도메인 개발 애플리케이션 아키텍처 계층형 구조 사용 controller, web: 웹 계층 service: 비즈니스 로직, 트랜잭션 처리 repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용 domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용 개발 순서: 서비스, 리포지토리 계층을 개발하고, 테스트 케이스를 작성해서 검증, 마지막에 웹 계층 적용 회원 도메인 개발 1. 회원 리포지토리 개발 @PersistenceContext -> JPA가 제공하는 표준 어노테이션 스프링이 EntityManager em을 만들어서 주입해준다. (@PersistenceUnit을 사용하면 Factory를 직접 주입받을수 있다 -> 사용할일은 거의 없다..) public List findAll() { return.. 2022. 4. 19.
JPA 프로젝트 환경설정 프로젝트 생성 롬복 적용 1. Prefrences plugin lombok 검색 실행 (재시작) 2. Prefrences Annotation Processors 검색 Enable annotation processing 체크 (재시작) 3. 임의의 테스트 클래스를 만들고 @Getter, @Setter 확인 IntelliJ Gradle 대신에 자바 직접 실행 최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠르다. Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle Build and run using: Gradle -> .. 2022. 4. 17.