본문 바로가기

웹 개발/Back End30

스프링 시큐리티 개념 스프링 시큐리티 스터디를 시작하게 되었는데 다음주 발표라서 급하게 만듭니다. 단어, 그림 위주로 넣고 발표할 때 자세히 설명할거임 -> 사유: 꽤바쁨     1. 교재   2. 스프링 시큐리티란?스프링 시큐리티는 Spring 기반의 애플리케이션에서 보안 기능을 제공합니다. 인증 : 사용자의 신원 확인인가: 사용자의 권한 확인 추가적으로 CSRF, XSS, 세션 변조 등 여러가지 웹해킹 공격을 방지해주는 기능을 제공합니다.   3. 왜 스프링 시큐리티를 사용하는가? 그냥 JWT 토큰만 사용하는거랑 무슨 차이가 있을까? 1. 직접 설정하기 귀찮다.-> JWT 코드@Slf4j@Service@RequiredArgsConstructorpublic class JwtService { public static f.. 2024. 5. 19.
JPA : Java Persistence API - 자바 진영의 ORM 기술 표준 1.1 ORM? - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 JPA를 사용하지 않는다면 객체 데이터를 보낼 때 objectMapper로 복잡하게 맵핑해야한다.. JPA는 인터페이스의 모음 JPA 2.1 표준 명세를 구현한 3가지 구현체 하이버네이트, EclipseLink, DataNucleus • JPA는 특정 데이터베이스에 종속 X, • 하이버네이트는 40가지 이상의 데이터베이스 방언 지원 1.2 JPA 구동방식 1.3 엔티티의 생명주기 • 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새.. 2022. 12. 22.
스프링 MVC 디자인 패턴의 역사 오랜만에 스프링을 복습하면서 작성해본다.. 서블릿이란? 서블릿은 자바 클래스로 웹 애플리케이션을 작성한 뒤 이후 웹 서버 안에 있는 웹 컨테이너에서 이것을 실행하고, 웹 컨테이너에서는 서블릿 인스턴스를 생성 후 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 수행하고 웹 브라우저에 HTTP형식으로 응답(Response)합니다. HttpServletRequest, HttpServletResponse를 사용할 때 가장 중요한 점은 이 객체들이 HTTP 요청 메시지, HTTP 응답 메시지를 편리하게 사용하도록 도와주는 객체라는 점이다. 따라서 이 기능에 대해서 깊이 있는 이해를 하려면 HTTP 스펙이 제공하는 요청, 응답 메시지 자체를 이해해야 한다 JSP 란 Jav.. 2022. 12. 22.
Spring REST Docs Spring Rest Docs를 이용하여 API 스펙을 명시하는데 필요한 기본 설정을 하였다. https://github.com/Lemon-soju/Vue_Spring/commit/1b0be0f04b6b4b74a5eb05d2e4d1afa89c608a49 Merge pull request #14 from Lemon-soju/slave-01 · Lemon-soju/Vue_Spring@1b0be0f Spring REST Docs - Default Configuration github.com Spring Rest Docs란? API문서 작성을 자동화해주는 도구는 여러가지가 있지만 대표주자로 Swagger와 Spring Rest Docs가 있다. Swagger는 API 동작을 테스트하는 용도에 더 특화되어있다. .. 2022. 9. 15.
스프링 개념 정리(3) ObjectMapper Java 객체를 Json 형식으로 매핑하거나 Json 형식을 Java 객체로 매핑할 때 사용하는 클래스다. MockMvc란? MockMvc는 웹 어플리케이션을 애플리케이션 서버에 배포하지 않고 테스트용 MVC환경을 만들어 요청 및 전송, 응답기능을 제공해주는 유틸리티 클래스다. 다시 풀어서 이야기 하자. 내가 컨트롤러 테스트를 하고싶을 때 실제 서버에 구현한 애플리케이션을 올리지 않고(실제 서블릿 컨테이너를 사용하지 않고) 테스트용으로 시뮬레이션하여 MVC가 되도록 도와주는 클래스다! 🧐MockMvc 사용법 컨트롤러를 테스트한다고 가정하자! class ControllerTest{ @Autowired private MockMvc mockMvc; // mockMvc 생성 @Test p.. 2022. 9. 1.
스프링 개념 정리(2) @ToString 객체의 속성 값들을 콘솔에 출력 @RequestParam 아래 modelattribute에서 설명함 @ModelAttribute @RequestParam과 달리 객체 자체를 매핑한다. @RequestParam는 객체의 속성을 각각 맵핑 해야되지만 @ModelAttribute는 객체 자체를 맵핑하기 때문에 만약 다른 속성이 추가된다면 수정이 용이하다. @RequiredArgsConstructor final이 붙거나 @NotNull 이 붙은 필드의 생성자를 자동 생성해주는 롬복 어노테이션 필드 주입방식을 사용한 기존 Service @Service public class BannerServiceImpl implements BannerService { @Autowired private Bann.. 2022. 9. 1.
스프링 개념 정리(1) 스프링과 Vue.js로 블로그를 만들고 있다. 지금까지 CRUD 기능을 구현하였는데 중간점검을 위해서 지금까지 배운 것들을 정리해보려고 한다. 코드는 아래 commit에서 확인할 수 있다. https://github.com/Lemon-soju/Vue_Spring/commit/67e89498fde5d403de7f1dd44f450dbb896ad3f7 Delete Posts · Lemon-soju/Vue_Spring@67e8949 Show file tree Showing 4 changed files with 49 additions and 0 deletions. github.com [ Spring Bean 이란? ] Spring에서는 Spring의 DI Container에 의해 관리되는 POJO(Plain Ol.. 2022. 8. 27.
실전! 스프링 부트와 JPA 활용2 - 스프링 데이터 JPA, QueryDSL 소개 스프링 데이터 JPA 소개 https://github.com/Lemon-soju/Spring-Boot-and-JPA-toddler-practice-02/commit/a934031b39ca60e74d418314039d47a8bf9315e9 Merge pull request #16 from Lemon-soju/slave-01 · Lemon-soju/Spring-Boot-and-JPA-toddler-practice-02@a934031 Spring Data JPA Introduce github.com 예제에서는 findOne() -> findById()로 변경해야 한다. 스프링 데이터 JPA는 JpaRepository 라는 인터페이스를 제공하는데, 여기에 기본적인 CRUD 기능이 모두 제공된다. (일반적으로 상.. 2022. 1. 28.
실전! 스프링 부트와 JPA 활용2 - API 개발 고급 - 컬렉션 조회 최적화 주문 조회 V1: 엔티티 직접 노출 https://github.com/Lemon-soju/Spring-Boot-and-JPA-toddler-practice-02/commit/9bd8afaf9c005063da3fca149bccff2609acb11b Merge pull request #8 from Lemon-soju/slave-01 · Lemon-soju/Spring-Boot-and-JPA-toddler-practice-02@9bd8afa ManyToOne Direct Exposure Entity github.com 주문내역에서 추가로 주문한 상품 정보를 추가로 조회 -> (OneToMany)를 조회 Order 기준으로 컬렉션인 OrderItem 와 Item 이 필요하므로 LAZY를 추가로 초기화 주문 조회.. 2022. 1. 26.