반응형

Framework/Spring 9

[Spring Security] Filter와 Filter Chain에 대한 이해

2024.05.08 - [Framework/Spring] - [Spring Security] Deep Dive (1) [Spring Security] Deep Dive (1)# OverviewSpring Security를 쓰면서 뭔가 [어 되네?]에서 그친 이론과 알고리즘을 제대로 이해하고 내가 원하는 User Level 및 다양한 기능을 활용하기 위해서 Deep Dive 해보고자 한다. 이론부터 실전까지! blaj2938.tistory.com 이전에 Spring Security의 기능 및 역할에 대해서 살펴보았다. 인증, 인가, 보통 수준의 공격(csrf와 같은)으로 부터 방어를 해준다. What을 알았으니 Where를 알아보고자한다.# 어디서 동작해?2023.10.26 - [Framework/Spri..

Framework/Spring 2024.05.11

[Spring Security] Intro. Deep Dive

# OverviewSpring Security를 쓰면서 뭔가 [어 되네?]에서 그친 이론과 알고리즘을 제대로 이해하고 내가 원하는 User Level 및 다양한 기능을 활용하기 위해서 Deep Dive 해보고자 한다. 이론부터 실전까지! 항상 무턱대고 공부하는 것보다는 흐름을 이해하고 공부하는게 좋은거 같다. Spring Security하기 전에 먼저 MVC 패턴에서 Spring 동작원리를 살펴보는 것이 좋다.2023.10.26 - [Framework/Spring] - [Spring] Spring MVC 패턴의 LifeCycle [Spring] Spring MVC 패턴의 LifeCycle# 목적 이번의 면접 질문중에 Spring MVC 패턴의 Process Flow에 대한 인터뷰 질문을 받았습니다. 워낙..

Framework/Spring 2024.05.08

[Spring] DB 접근 방법

사족을 먼저 달고 하겠다. Spring을 공부하면서 DB에 Query를 날리는 많은 방법이 있지만, 인강을 통해서 JPA를 학습하는데, "김영한 선생님" 께서 말씀하셨다시피 Query를 못짜면 JPA를 쓸 필요가 없다는 것이다. 그리고 무조건 JPA가 좋은 것도 아니다. 👏 취업을 준비하는 분들과 취업을 준비하는 나에게 Spring에서 DB로 쿼리를 날릴때, 어떤 점들이 좋고 어떤 것들을 선택하는게 좋은 것인지 알아볼 수 있도록 정리해보겠다. # JdbcTemplate 먼저, JdbcTemplate를 알기 전에, Jdbc를 알고가자. Jdbc란? Java Database Connectivity의 약자로써 Java가 데이터베이스와 통신하기 위한 API이다. Jdbc를 활용하여 DB연결, SQL 실행과 같은..

Framework/Spring 2024.04.10

[Spring] Rest Doc 활용하기

MSA 프로젝트를 진행하다가 API 문서에 대해서 팀원분이 Swagger를 쓰겠다고 했을때, 저는 안되는 이유에 대해서 설명을 해드렸습니다. " 서비스가 쪼개질때마다 swagger 문서가 production에 생길텐데, 프론트 앤드 엔지니어 입장이라면 원하는 API문서를 찾을때까지 뒤지는건 생산성이 떨어진다." 그러면서 API문서 구축하시는 분께 다른 방법이 있는지 찾아달라고 부탁드렸습니다. (정 없다면 스프레드 시트로 작성해야죠.....!!) 아니다 다를까 MSA가 화두되고 있는 지금 다른 방법이 아예 없지는 않았습니다. 팀원분이 하루만에 방법을 찾아오셨더라고요 해당 방법은 아래와 같았습니다. 서비스별 Rest Docs을 생성한다. 생성된 Rest Doc을 Open API 형태의 Json 포맷으로 만다..

Framework/Spring 2023.12.13

[Spring] Spring MVC 패턴의 LifeCycle

# 목적 이번의 면접 질문중에 Spring MVC 패턴의 Process Flow에 대한 인터뷰 질문을 받았습니다. 워낙 급하게 주먹구구식으로 공부하는 편이라 이론?이라고 해야하나? 기본을 잘 모르기 때문에 면접에서 합격하던 떨어지던 관련 글을 남기겠습니다! 다음번에 실수하지 않기 위해! # 구체적 내용 Model, Veiw, Controller DispathcherServlet, HadlerMappig, HandlerAdapter, ViewResolver 찾아보니 생각보다 어려운 구조는 아닌거 같습니다만..... 항상 저는쉽게 풀어나가는걸 좋아하기 때문에 "레스토랑"에 비유해서 설명드리겠습니다! 아래 처럼 가정을 하겠습니다. 레스토랑 스프링 MVC 손님 브라우저 리셉션(안내데스크) DispathcherS..

Framework/Spring 2023.10.26

[Spring] JPA의 Persistence

JPA를 이해하는데 가장 중요한 용어는 영속성 컨텍스트이다. 영속성 컨텍스트 : 엔티티를 영구 저장하는 환경 JPA에서 persist() 메소드는 엔티티 매니저를 사용해서 영속성 컨텍스트에 저장 영속성 컨텍스트는 엔티티 매니저를 생성할때 하나 만들어지게 된다 앤티티 매니저는 영속성 컨텍스트를 생성 및 관리하는 역할을 하게된다. Entity는 4가지 State를 갖고 있다. 비영속(new/transient) 엔티티 객체를 생성 DB와 연관되어있지 않음 영속(managed) 엔티티 매니저를 통해서 엔티티를 영속성 컨텍스트에 저장 영속성 컨텍스트에서 관리되는 엔티티를 영속 상태라고 부름 준영속(detached) 엔티티를 영속성 컨텍스트가 관리하지 않는 상태 삭제(removed) 영속성 컨텍스트와 데이터베이스에..

Framework/Spring 2022.04.11

[Spring] Gradle 1편

Gradle의 최소한을 알기 위함 1. Maven과 Gradle 기본적으로 자바 언어는 빌드 도구를 이용하여 프로젝트 관리가 이루어진다. Gradle은 Groovy라는 언어기반으로 만들어진 빌드 도구이다. Groovy는 스크립트 언어이며, 소스 코드를 그대로 실행하게 된다. 스크립트 언어이지만 자바와 호환이 가능하고 자바 클래스를 그대로 Groovy클래스로 사용할 수 있다. 자바를 Groovy를 사용하여 빌드 처리하는것이 Gradle이다. Maven을 이용하연 XML기반으로 빌드를 처리한다. 자바와 유사성이 떨어질 수 있다. .gradle Gradle이 사용하는 폴더 gradle 기본적으로 Gradle의 환경을 정리한 Wrapper파일이라는 파일들이 저장 src 프로젝트에서 만든 프로그램 관련 디렉토리 ..

Framework/Spring 2022.04.04

[Spring] JPA-ORM

객체를 데이터로 데이터를 객체로 가져와야 한다. 객체 -> SQL -> DB로 변환 SQL을 객체로 연결할때 대부분 개발자 한다. 객체와 관계형 데이터 베이스는 큰 차이점을 갖고 있음 1. 상속 DB의 관계는 상속과는 다른 개념이다. DB에 저장할 객체는 상속관계를 활용하지 않는다. 자바에서 조회는 get/find, 추가는 add SQL 조회는 SELCT, 추가는 INSERT 객체 그래프 탐색 .을 찍어서 객체를 이동하는것을 이야기함 SQL을 사용할시 객체 그래프 탐색이 자유롭지 않음 복잡도에 따라서 SQL을 작성하기 어려워진다. SQL에 따라 그래프 탐색 범위가 제한적임 ->엔티티에 대한 신뢰 문제가 발생하게 됨 쿼리를 까 뒤집어봐야 함 JPA-ORM 객체는 객체대로 설계 관계형 데이터베이스는 관계형 ..

Framework/Spring 2022.03.10
반응형