목록분류 전체보기 (111)
Spring & Java
이번에는 AWS 기본 이야기를 해볼까 합니다. AWS Account /Region / AZ 기본 개념을 학습하고AWS 서비스 예시 ( EC2/ RDS / S3 ) 를 알게 됩니다.AWS 서비스의 선택 기준 까지도 알게 될 좋은 시간이 될 것으로 생각 됩니다. AWS는 전 세게에 분산된 데이터센터를 가지고 있고, 우리는 그 중 원하는 위치를 선택해서 사용하게 됩니다. https://aws.amazon.com/ko/what-is/data-center/ 데이터 센터란 무엇인가요? - 클라우드 데이터 센터 설명 - AWS데이터 센터의 정의, 비즈니스에서 데이터 센터를 사용하는 방식과 이유, AWS를 통해 데이터 센터를 사용하는 방법을 설명합니다.aws.amazon.com Account ● AWS 서비스를 사..
이번 시간은 웹사이트 동작 방식을 알아보겠습니다. 웹사이트 동작 방식1. 클라이언트 (Client) - 요청하는 주체● 정의 : 서비스를 요청하는 사용자 기기나 소프트웨어를 말합니다.● 예시 : 브라우저 ( 크롬, 사파리 등)● 역할 : 사용자의 명령을 받아 서버에 "이 작업을 처리해줘" 라고 요청 (Request) 을 보냅니다. 2. 네트워크 ( Network ) - 데이터의 통로● 정의 : 클라이언트와 서버가 서로 데이터를 주고받을 수 있게 연결해주는 망입니다.● 예시 : 인터넷● 역할 : 클라이언트가 보낸 요청을 서버로 전달하고, 반대로 서버가 만든 결과물을 다시 클라이언트에게 안전하게 배달하는 역할을 합니다. 이때 서로 대화가 통하도록 주로 HTTP라는 일종의 대화 규칙 (Protocol, 프로토..
이번 시간은 SQL과 JPQL의 차이점과 유사점을 이해할수 있게 될 것입니다.기본적인 JPQL 문법을 익히고 CRUD 쿼리를 작성할 수 있습니다.실습을 통해 JPQL이 실제로 어떻게 동작하는지 체감할 수 있게 됩니다. JPQL이란? 무엇일까요 JPQL은 Entity 객체를 대상으로 쿼리를 작성하는 갱체 지향 SQL 입니다.- JPA 에서 사용하는 언어다.- JPA 에서 사용하는 SQL 문법이다. 자 이제부터 실습을 시작하겠습니다. 기존에 과제에서 쓰던 database를 드롭 하겠습니다.DROP DATABASE advance;CREATE DATABASE advance로 데이터 베이스를 새로 생성 했고CREATE TABLE user ( id BIGINT AUTO_INCREMENT PRIMARY ..
이번 시간에는 AOP를 구현해 볼 것입니다. 강의를 시작하기전에 우선 AOP 어노테이션이 뭔지 알고 가야 학습에 도움이 되겠죠 ?이게 언제 사용 되는건지 어떻게 사용 되는 것인지 확인해보겠습니다.@Aspect, @Around, @Before 등을 활용하여 횡단 관심사 로직을 분리합니다. AOP가 필요한 이유 ! : AOP는 Interceptor 보다 사용 빈도가 높습니다.public String createPost(String title, String content) { long start = System.currentTimeMillis(); // 1. 실행 시간 측정 log.info("Start creating post"); // 핵심 로직 postRepository.save(ne..
이번에는 Interceptor 구현을 해보겠습니다. 이번 시간에 연습을 잘 하면 HandlerInterceptor의 구조와 시점을 이해할 수 있고 인증/권한 검증 같은 기능을 Controller 앞단에서 구현할 수 있게 될 것입니다. Interceptor란?● Spring MVC 에서 Controller 진입 직전/후에 동작 합니다.● JWT 기반 인증이 끝난 후, 인증된 사용자 정보 ( SecurityContext)를 활용하여 ○ 자원 소유자 검증 ○ 역할 기반 접근 제어 ○ API 사용 제한등의 부가 검증을 수행할 수 있음 요청흐름[사용자 요청] ↓[JwtFilter] 커스텀 필터에서 > 인증 처리 ↓[SecurityContextHolder에 인증 저장] ↓[Intercepto..
오늘은 공통 관심사 3대 처리 기술을 알아볼까 합니다. 3대 기술의 어떤 차이가 있는지 명확히 이해해야지만 실무에서 활용 가능하며, 언제 Filter, Interceptor, AOP를 써야 하는지 판단할 수 있는 실력이 향상 됩니다. 각 기술을 직접 구현해보면서, 눈으로 직접 확인해보면서 요청 흐름 내에서 어떻게 동작하는지 실습까지 해보도록 하겠습니다. 공통 관심사란 ? 인증, 인가, 로깅, 트랜잭션, 예외 처리 등 여러 레이어에 반복적으로 등장하는 처리● 핵심 로직과 분리하여 유지보수성을 높이기 위해 필요 왜 Filter, Interceptor, AOP 가 필요할까요?Spring에서 웹 애플리케이션을 개발할 때, 수많은 요청마다 반복적으로 처리해야 하는 공통 로직이 존재합니다. 예를들어 ● 모든 요청..
오늘은 Spring 2기 CH3 심화 Spring_코드 개선 과제를 실시 해볼까 합니다. 우선 필수 과제부터 하나씩 살펴 볼까요? 이것을 하는 이유에 대해서 조금 설명 드리면 우리가 코드를 얼마나 알고 있냐? 이것이 아니라 우리가 코드 개선을 얼마나 할 수 있냐를 보는게 핵심 같았습니다. 꼭 필요한 과제인만큼 따라가고 싶은 마음은 굴뚝 같은데 아직 실력이 회사에 가서 뛸 만큼 능숙하지 않고 코드 해석도 그렇게 단단하지 않아서 마음이 좋지 않은것은 사실입니다. 더 연습해서 확실하게 제것으로 만들어 보겠습니다. 시작하겠습니다. Lv 0. 프로젝트 세팅 - 에러 분석 기존에 스프링을 실행 시키면 에러가 발생 했었습니다. 그 원인은 바로 resources 파일이 없었고 그것을 인코딩 할 파일이 없었기 떄문입니..
인가란 무엇인지 또 나오는데 이건 계속 학습해야 되는 중요한 부분이라 여러번 나오는 것이니 꼭 암기하고 학습 해야 됩니다. 개념 정리인증 ( Authenication ) 사용자가 누구인지 확인하는 절차인가 ( Autheorization ) : 인증된 사용자가 무엇을 할 수 있는지 결정하는 절차예시 : 로그인은 되었지만, 관리자만 접근 가능한 페이지에 들어가려 하면 권한 검사를 통해 차단됨 우리가 구성한 인가 흐름과 Spring Security 구조 비교Spring Security의 인가 흐름 이론[SecurityContext에 저장된 Authentication] ↓[FilterSecurityInterceptor] ↓[AccessDecisionManager] ↓[권한 정보와 비교 → 접근 ..
Spring Security 가장 핵심이 되는 SecurityContext 개념과 인증 실습을 해보겠습니다. SecurityContextHolderSecurityContextHolder는 현재 쓰레드에서 인증된 사용자 ( Authentication 객체 )를 저장/조회 하는 Spring Security 핵심 저장소 입니다.즉, 지금 로그인한 사용자가 누구인지를 저장하는 곳입니다. 인증 정보 저장 위치Authentication auth = SecurityContextHolder.getContext().getAuthentication();커스텀 필터나 컨트롤러, 서비스 어디서든 SecurityContextHolder를 통해 인증 정보에 접근 가능수동 저장 예시 (JWT 사용 시 )SecurityContex..
이번에는 Spring Security의 개념과 구조를 이해하고 인증/인가를 Spring Security가 어떻게 처리되는지 학습 하는게 목표 입니다.인증 방식 ( Session, Token, OAuth2) 의 차이를 개념적으로 정리해보겠습니다. Spring Security 개념 및 구조 스프링 기반 애플리케이션의 인증(Authentication) 과 인증 (Authorization) 를 담당하는 보안 프레임워크입니다. Filter 기반 보안 처리Spring Security 적용을 위한 작업implementation 'org.springframework.boot:spring-boot-starter-security'이거 한줄에러가 난다는데 난 필터가 있어서 그런가 .. 에러가 발생하지 않았다. 아! 설마 ..