분류 전체보기318 3) 초기화 과정이해 - DelegatingFilterProxy / FilterChainProxy , 사용자 정의 보안 설정하기 Filter• 서블릿 필터는 웹 애플리케이션에서 클라이언트의 요청과 서버의 응답을 가공하거나 검사하는데 사용되는 구성 요소이다 [ 클라이언트의 요청 -> ServletRequest [ HttpServletRequest ] , 서버의 응답 -> ServletResponse [ HttpServletResponse] ] • 서블릿 필터는 클라이언트의 요청이 서블릿에 도달하기 전이나 서블릿이 응답을 클라이언트에게 보내기 전에 특정 작업을 수행할 수 있다 • 서블릿 필터는 서블릿 컨테이너(WAS)에서 생성되고 실행되고 종료된다 DelegatingFilterProxy • DelegatingFilterProxy는 스프링에서 사용되는 특별한 서블릿 필터로,서블릿 컨테이너와 스프링 애플리케이션 컨텍스트 간의 연결고.. 인프런/스프링 시큐리티 완전 정복 [6.x 개정판] 2024. 10. 5. 2) 초기화 과정이해 - WebSecurity / HttpSecurity HttpSecurityHttpSecurityConfiguration에서 HttpSecurity를 생성하고 초기화를 진행한다 HttpSecurity는 보안에 필요한 각 설정 클래스와 필터들을 생성하고 최종적으로 SecurityFilterChain 빈 생성 HttpSecurityConfiguration를 통해 HttpSecurity를 수동빈 등록하는데 빈을 생성할때 설정을 진행하며Configurer가 만들어지고 최종적으로 HttpSecurity가 생성되면 Configurer안의 init, configure 메소드를 통해 필터들이 생성되고 등록된다. SecurityFilterChain - SecurityFilterChain는 하나가 아니라 여러개가 생성될 수 있다. public final class .. 인프런/스프링 시큐리티 완전 정복 [6.x 개정판] 2024. 10. 2. 1) 초기화 과정이해 - 프로젝트 설정, Spring Security 기본설정클래스, SecurityBuilder / SecurityConfigurer 프로젝트 설정 -Spring boot 3.3.4 버전- JDK 17 - Gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' }spring security 의존성 추가 Spring Boot Security 자동설정spring security 의존성을 추가하면 관련 라이브러리가 다운로드 되고 그중 자동 설정 클래스가 추가된다. SpringBootWebSecurityConfiguration@Configuration(proxyBeanMethods = false)@ConditionalOnWebApplication(type = Type.SERVLET)class SpringBootW.. 인프런/스프링 시큐리티 완전 정복 [6.x 개정판] 2024. 9. 30. 클린 아키텍처[ 레이어드 아키텍처,클린 아키텍처, 헥사고날 아키텍처 ] 소프트웨어 아키텍처란 아키텍처 : 어떤 대상의 구성과 동작 원리 , 구성 요소간의 관계 및 시스템 외부 환경과의 관계를 설명하는 하나의 설명서 ex) 시스템 아키텍처는 시스템이 전반적으로 어떻게 구성되어있는지, 각각의 요소들은 무엇이 있는지에 대해 설명한다.ex ) 소프트웨어 아키텍처 : 소프트웨어 구성요소들 사이 관계를 표현 레이어드 아키텍처관심사가 같은 코드들을 계층으로 그룹화 레이어드 아키텍처 특징1. 계층화로 인한 분리된 책임 2. 편의에 따라 여러 계층을 추가 가능하다Ex) presentation, application, domain, persistence 3. 구조가 쉽고 단순하고 익숙하다 4. 데이터베이스 주도 설계가 될 수 있다. 레이어드 아키텍처 흐름 상위계층이 하위계층을 의존하게.. 공부 2024. 9. 27. jpa hibernate sql 로그 안보이는 문제 해결 jpa: hibernate: ddl-auto: create properties: hibernate: format_sql: truelogging: level: org.hibernate.SQL: debug org.hibernate.orm.jdbc.bind: trace jpa: properties: hibernate: show_sql: trueshow_sql은 System.out.println 처럼 콘솔출력이므로 사용하지않고 log로 찍는것이 좋다. logging: level: org.hibernate.SQL: debug이것으로 hibernate가 생성하는 쿼리 로그로 확인가능 org.hibernate.sql 로 적으면 안보인다... 문제해결 2024. 6. 19. 1) 라우터, 코드 스플린팅 [lazy,suspense] , <Link> , 레이아웃 컴포넌트,child ,모듈화와 라우팅 관리 코드 스플린팅코드 스플리팅파일을 분리하는 작업❗더 나은 사용자 경험을 위해 코드를 비동기적으로 로딩하는 방법예를 들어 페이지가 /main, /about, /post 이렇게 세 가지 페이지로 이루어진 SPA를 개발한다고 할 때/main으로 들어가는 동안 /about이나 /post 페이지 정보는 사용자에게 필요하지 않을 확률이 높다.💡 그러한 파일들을 분리하여 지금 사용자에게 필요한 파일만 불러올 수가 있다면 로딩도 빠르게 이루어지고 트래픽도 줄어 사용자 경험이 좋아질 수가 있다.지금 당장 필요한 코드가 아니면 따로 분리시켜서, 나중에 필요할 때 불러와서 사용할 수 있다.리액트에서 코드 스플리팅React.lazy💡 컴포넌트를 렌더링하는 시점에 비동기적으로 로딩할 수 있게 해주는 유틸 함수이다.Suspen.. 책/코드로 배우는 리액트 2024. 6. 19. 1) [미완] 프로젝트 환경설정 ,예제 도메인 모델, 기본문법 Querydsl 설정과 검증build.gradle//test 롬복 사용testCompileOnly 'org.projectlombok:lombok'testAnnotationProcessor 'org.projectlombok:lombok'//Querydsl 추가implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"annotationProcessor "jakarta.annotation:jakarta.annotation-api"annotationProcess.. 인프런/실전! Querydsl 2024. 6. 19. 끝) update, delete UPDATE 진행할 작업 update 기능 추가하기. contextControl = { event.preventDefault(); setMode('UPDATE');}}>Updateelse if (mode === 'UPDATE') { let topic = topics.find(p => p.id === id); // topic이 존재하는지 예외처리는 여기서 스킵 content = { // Update는 기존의 값을 볼 필요가 있으므로 Update 컴포넌트는 기존의값을 가지는 props를 가져야한다. // 그래야 컴포넌트를 실행할때 [렌더링할때] 해당 props를 사용하여 렌더링해줄수있기 떄문. //onUpdate에는 수정된 title,body를 이용하여 적용하.. 다른 온라인 강의/생활코딩- React 2022년 개정판 2024. 6. 18. 3) state, create State컴포넌트에서 Prop은 전달인자 return은 반환값이다.동적으로 컴포넌트의 내용을 바꾸기 위해서는 State를 이용한다.state의 값이 바뀌면 컴포넌트가 다시 실행되어서 return의 구성이 변경될수있고, 새롭게 렌더링 된다. + gptProp과 State에 대한 설명Prop (Properties)전달인자: Prop은 컴포넌트가 외부로부터 전달받는 데이터입니다. 부모 컴포넌트가 자식 컴포넌트에 데이터를 전달할 때 사용됩니다.불변성: Prop은 컴포넌트 내에서 변경할 수 없습니다. 자식 컴포넌트는 부모 컴포넌트로부터 전달받은 Prop을 읽기 전용으로 사용합니다.사용 예: 에서 title과 body가 Prop입니다.State내부 데이터: State는 컴포넌트가 관리하는 내부 데이터입니다. Sta.. 다른 온라인 강의/생활코딩- React 2022년 개정판 2024. 6. 18. 2 ) 컴포넌트 생성 , props , 이벤트 App.jsimport logo from './logo.svg';import './App.css';function App() { return ( WEB html css js WelCome Hello, Web );}export default App; app.js는 싱글 페이지 애플리케이션의 주요 컴포넌트 중 하나입니다.이 파일은 보통 리액트 애플리케이션의 진입점(entry point) 역할을 하며, 전체 애플리케이션의 구조를 정의하고.. 다른 온라인 강의/생활코딩- React 2022년 개정판 2024. 6. 18. 1 ) 리액트 프로젝트 구조 리액트 프로젝트 구조 각 파일과 폴더의 역할node_modules/: 현재 프로젝트에 설치된 모든 npm 패키지가 들어 있는 디렉터리입니다. 보통 깃과 같은 저장소에 올릴 때는 이 폴더를 함께 올리지 않습니다. public/: 정적 파일이 들어 있는 디렉터리입니다. index.html 파일과 애플리케이션에 필요한 기타 정적 파일들이 포함되어 있습니다. 컴파일이 필요 없는 파일들이 위치하는 폴더입니다. src/: 소스 코드가 들어 있는 디렉터리입니다. 이 디렉터리에서 React 컴포넌트, 스타일시트, 테스트 파일 등이 포함됩니다. 리액트 내부에서 작성하는 거의 모든 파일들이 이 폴더 내부에서 작성되며 이 폴더에 있는 파일들은 명령어에 따라 JS로 컴파일이 진행됩니다.App.js: 메인 애플리케이션 컴포.. 다른 온라인 강의/생활코딩- React 2022년 개정판 2024. 6. 18. 끝) [미완] 나머지 기능들 - Specifications(명세),Query By Example,Projections,네이티브 쿼리 복잡도에 비해서 실무에서는 많이 사용되지않는다. [ 다른 대안도 존재하기도 하고 ]왜 실무에서 쓰기에 애매한지를 초점에 맞춘다. Specifications (명세) 도메인 주도 설계(Domain Driven Design)라는 책에는 SPECIFICATION(명세)라는 개념을 소개 스프링 데이터 JPA는 JPA Criteria를 활용해서 이 개념을 사용할 수 있도록 지원 [ JPA Criteria를 사용하면 코드가 읽기 어려워서 실무에서는 안쓴다고 한다. 이런게 있구나로 보면된다.] 술어(predicate)- 참 또는 거짓으로 평가- AND OR 같은 연산자로 조합해서 다양한 검색조건을 쉽게 생성(컴포지트 패턴)- 예) 검색 조건 하나하나- 스프링 데이터 JPA는 org.springframework.d.. 인프런/실전! 스프링 데이터 JPA 2024. 6. 14. 이전 1 2 3 4 5 6 ··· 27 다음