전체 글

-
서론 쿠키와 세션, 그리고 JWT를 활용한 사용자 정보 관리를 학습하면서 인증과 인가에 대한 내용이 나왔다. 로그인을 통해 사용자 인증을 하고 로그인한 사용자의 권한이 관리자인지, 일반 사용자인지 확인하는 인가작업을 하는 과정이 존재했다. 인증과 인가라는 단어가 딱 들었을 때, 이해가 안되는 내용은 아니지만 정의와 함께 확실하게 이해하고자 정리해본다. 인증과 인가 인증과 인가를 따로 기술하기 보단 함께 비교하면서 기술하는 것이 이해하기에 쉽다고 생각해 이 2가지를 비교하면서 이해해보자. 인증 : 사용자의 신원을 검증하는 행위 인가 : 사용자에게 특정 리소스나 기능에 접근할 수 있는 권한을 부여하는 행위 인증은 보안 프로세스에서 첫번째 단계이며 다음과 같은 방법들이 존재한다. 비밀번호 : 사용자 이름과 비..
[보안] 인증과 인가서론 쿠키와 세션, 그리고 JWT를 활용한 사용자 정보 관리를 학습하면서 인증과 인가에 대한 내용이 나왔다. 로그인을 통해 사용자 인증을 하고 로그인한 사용자의 권한이 관리자인지, 일반 사용자인지 확인하는 인가작업을 하는 과정이 존재했다. 인증과 인가라는 단어가 딱 들었을 때, 이해가 안되는 내용은 아니지만 정의와 함께 확실하게 이해하고자 정리해본다. 인증과 인가 인증과 인가를 따로 기술하기 보단 함께 비교하면서 기술하는 것이 이해하기에 쉽다고 생각해 이 2가지를 비교하면서 이해해보자. 인증 : 사용자의 신원을 검증하는 행위 인가 : 사용자에게 특정 리소스나 기능에 접근할 수 있는 권한을 부여하는 행위 인증은 보안 프로세스에서 첫번째 단계이며 다음과 같은 방법들이 존재한다. 비밀번호 : 사용자 이름과 비..
2022.12.08 -
서론 처음으로 배웠던 언어가 C와 C++이였고 이때, 클래스와 상속의 중요함은 너무나 많이 들었기에 잊을 수가 없다. 그래서 언어 스터디를 하면서도 상속부분까지는 복습하는 느낌으로 진행했고 실제로도 딱히 막히는 부분은 없었다. 하지만 익숙함을 경계해야 한다고, 쉽게 놓칠 수 있는 부분등과 함께 상속을 짧게 나마 정리해보고자 한다. 상속 객체 지향 프로그래밍(OOP)에서 상속은 객체들 간의 관계를 구축하는 방법이다. 설명만 들었을 때는 쉽게 와닿지 않는 것이 상속이다. 하지만 실제로 코드로 구현해보면 어렵지 않다. 아래 예시를 보자. public class Person{ String name; int age; public void speak(){ ... } public void walk(){ ... } ...
[JAVA] 상속서론 처음으로 배웠던 언어가 C와 C++이였고 이때, 클래스와 상속의 중요함은 너무나 많이 들었기에 잊을 수가 없다. 그래서 언어 스터디를 하면서도 상속부분까지는 복습하는 느낌으로 진행했고 실제로도 딱히 막히는 부분은 없었다. 하지만 익숙함을 경계해야 한다고, 쉽게 놓칠 수 있는 부분등과 함께 상속을 짧게 나마 정리해보고자 한다. 상속 객체 지향 프로그래밍(OOP)에서 상속은 객체들 간의 관계를 구축하는 방법이다. 설명만 들었을 때는 쉽게 와닿지 않는 것이 상속이다. 하지만 실제로 코드로 구현해보면 어렵지 않다. 아래 예시를 보자. public class Person{ String name; int age; public void speak(){ ... } public void walk(){ ... } ...
2022.12.08 -
서론 클라이언트와 서버간 통신을 할 때, HTTP는 사용자의 상태를 저장하지 않는다. (Stateless) 하지만 실제 서비스에선 상태 정보를 유지해 권한 설정, 사용자 인증 등을 진행해야한다. 이를 가능하게 하는 몇가지 방법들이 존재했고 이를 정리해보고자 한다. Cookie 클라이언트(Client)에 저장될 목적으로 생성한 작은 정보를 담은 파일을 의미한다. 구성요소 - Name(이름) : 쿠키를 구별하는데 사용되는 키 (중복 불가) - Value(값) : 쿠키의 값 - Domain(도메인) : 쿠키가 저장된 도메인 - Path(경로) : 쿠키가 사용되는 경로 - Expires(만료기한) : 쿠키의 만료기한 예시 Session 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 서버에서 클라이..
Session/Cookie와 JWT서론 클라이언트와 서버간 통신을 할 때, HTTP는 사용자의 상태를 저장하지 않는다. (Stateless) 하지만 실제 서비스에선 상태 정보를 유지해 권한 설정, 사용자 인증 등을 진행해야한다. 이를 가능하게 하는 몇가지 방법들이 존재했고 이를 정리해보고자 한다. Cookie 클라이언트(Client)에 저장될 목적으로 생성한 작은 정보를 담은 파일을 의미한다. 구성요소 - Name(이름) : 쿠키를 구별하는데 사용되는 키 (중복 불가) - Value(값) : 쿠키의 값 - Domain(도메인) : 쿠키가 저장된 도메인 - Path(경로) : 쿠키가 사용되는 경로 - Expires(만료기한) : 쿠키의 만료기한 예시 Session 서버에서 일정시간 동안 클라이언트 상태를 유지하기 위해 사용 서버에서 클라이..
2022.12.08 -
스프링 프레임워크(Spring Framework)란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 스프링 프레임워크의 특징 경량 컨테이너 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. POJO 기반의 구성 POJO는 Plain Old Java Object의 약어이며 오래된 방식의 간단한 자바 객체라는 말이다.즉, 우리가 자바에서 개발하는 지극히 평범한 객체를 POJO라고 한다. 다만, POJO는 특정 규약과 특정 환경에 종속되어서는 안되고 객체지향 설계를 잘 지켜야한다는 조건이 있다. DI를 통한 객체 간의 관계 구성 스프링은 그 자체가 구조를 설계할 수 있어서 개발..
[Spring] Spring Framework란?스프링 프레임워크(Spring Framework)란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 스프링 프레임워크의 특징 경량 컨테이너 경량 컨테이너로서 자바 객체를 직접 관리한다. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. POJO 기반의 구성 POJO는 Plain Old Java Object의 약어이며 오래된 방식의 간단한 자바 객체라는 말이다.즉, 우리가 자바에서 개발하는 지극히 평범한 객체를 POJO라고 한다. 다만, POJO는 특정 규약과 특정 환경에 종속되어서는 안되고 객체지향 설계를 잘 지켜야한다는 조건이 있다. DI를 통한 객체 간의 관계 구성 스프링은 그 자체가 구조를 설계할 수 있어서 개발..
2022.12.08 -
서론 Spring CRUD 과제를 진행하면서 엔티티간 연관 관계 구성이 필요했고 이를 위해 ERD를 통해 테이블 간 연관관계를 작성하고 과제를 진행했다. ERD를 작성해본적은 있지만 해당 개념에 대해서 자세히 공부해본 적은 없었기에 ERD에 대해서 조금 더 알아보고자 한다. ERD란? ERD : Entity Relationship Diagram 개체(Entity)와 관계(Relationship)을 중점적으로 표시하는 데이터베이스 구조를 한 눈에 알아보기 위해 그리는 다이어그램(Diagram) ERD의 정의는 위와 같다. 조금 더 자세히 알아보자. ERD란 Entity Relationship Diagram의 약어로, 데이터베이스 구조를 한눈에 알아보기 위해 사용한다. DB를 개발하기 전에 보다 많은 아이디..
[DB] ERD란?서론 Spring CRUD 과제를 진행하면서 엔티티간 연관 관계 구성이 필요했고 이를 위해 ERD를 통해 테이블 간 연관관계를 작성하고 과제를 진행했다. ERD를 작성해본적은 있지만 해당 개념에 대해서 자세히 공부해본 적은 없었기에 ERD에 대해서 조금 더 알아보고자 한다. ERD란? ERD : Entity Relationship Diagram 개체(Entity)와 관계(Relationship)을 중점적으로 표시하는 데이터베이스 구조를 한 눈에 알아보기 위해 그리는 다이어그램(Diagram) ERD의 정의는 위와 같다. 조금 더 자세히 알아보자. ERD란 Entity Relationship Diagram의 약어로, 데이터베이스 구조를 한눈에 알아보기 위해 사용한다. DB를 개발하기 전에 보다 많은 아이디..
2022.12.06 -
- 오늘 한 일 Spring CRUD 코드 정리를 했다. 주석을 달면서 이해가 되지 않던 부분들을 추가적으로 학습했고 이를 통해 전체적인 코드 동작 과정을 복습할 수 있었다. 현재 해당 코드에서 조금 아쉬운 점은 두개의 테이블을 연결해주는 부분에 있다. 아직까지 JPA 연관관계를 제대로 이해하지 못하고 사용해 올바른지 스스로 점검을 못했고 이에 대해 딥하게 공부할 필요가 있다. 내일 부턴 팀과제와 궁금했던 개념들에 대해서 정리할 예정이다. 18개 정도 정리하고 싶은 내용들이 있는데 과연 언제 끝날지 모르겠다. 아무튼 화이팅 - 잘한 점 코드 복기를 한 것 - 부족했던 점 JPA를 제대로 이해하고 사용한 것이 아닌 것 - 내일 할 일 개념 정리
20221205 항해 4주차- 오늘 한 일 Spring CRUD 코드 정리를 했다. 주석을 달면서 이해가 되지 않던 부분들을 추가적으로 학습했고 이를 통해 전체적인 코드 동작 과정을 복습할 수 있었다. 현재 해당 코드에서 조금 아쉬운 점은 두개의 테이블을 연결해주는 부분에 있다. 아직까지 JPA 연관관계를 제대로 이해하지 못하고 사용해 올바른지 스스로 점검을 못했고 이에 대해 딥하게 공부할 필요가 있다. 내일 부턴 팀과제와 궁금했던 개념들에 대해서 정리할 예정이다. 18개 정도 정리하고 싶은 내용들이 있는데 과연 언제 끝날지 모르겠다. 아무튼 화이팅 - 잘한 점 코드 복기를 한 것 - 부족했던 점 JPA를 제대로 이해하고 사용한 것이 아닌 것 - 내일 할 일 개념 정리
2022.12.06 -
20221205(Weekend, I learn) - 이번 주 한 일 스프링 입문 주차를 마무리하고 숙련 주차를 시작했다. 스프링의 많은 개념들을 쓰나미처럼 때려박다보니 아직까지 이해되지 않는 부분들이 많다. 이번 주 키워드도 스프링의 DI, IOC, BEAN등 정해져 있지만 아직까지 누군가에게 자세히 설명할 자신은 없다. 이런 부분들을 메꾸기 위해서 이번 주 과제를 빠르게 마무리하고 개념 공부를 해야 될 듯하다. 현재 나오고 있는 과제들을 하다 보면 개선할 사항들이 계속 나온다. 오늘도 공부를 하던 중 오류가 나는 부분이 있어 다른 분께 어떻게 처리했는지 여쭤봤는데 내가 작성한 반환형과 다르게 만든 메소드가 존재했다. 어떤건지 물어보니 기술매니저님이 알려주셨다고 하는데 이런 부분도 개선할 사항들 중 하나..
2022년 12월 1주차20221205(Weekend, I learn) - 이번 주 한 일 스프링 입문 주차를 마무리하고 숙련 주차를 시작했다. 스프링의 많은 개념들을 쓰나미처럼 때려박다보니 아직까지 이해되지 않는 부분들이 많다. 이번 주 키워드도 스프링의 DI, IOC, BEAN등 정해져 있지만 아직까지 누군가에게 자세히 설명할 자신은 없다. 이런 부분들을 메꾸기 위해서 이번 주 과제를 빠르게 마무리하고 개념 공부를 해야 될 듯하다. 현재 나오고 있는 과제들을 하다 보면 개선할 사항들이 계속 나온다. 오늘도 공부를 하던 중 오류가 나는 부분이 있어 다른 분께 어떻게 처리했는지 여쭤봤는데 내가 작성한 반환형과 다르게 만든 메소드가 존재했다. 어떤건지 물어보니 기술매니저님이 알려주셨다고 하는데 이런 부분도 개선할 사항들 중 하나..
2022.12.05 -
- 오늘 한 일 이번주는 개인과제 2개와 팀과제 1개가 존재한다. 2개 중 1개는 완료했다. 1개를 수정하던 중, @Valid가 있는 것을 발견하고 이를 사용하기 위해 코드를 수정했다. 하지만 @Valid는 제대로 동작하지 않았고 아직까지 해결 방법을 찾지 못했다. 여러 방법들을 시도했지만 해결을 못해 답답한 마음이 컸다. 해당 문제를 해결하고 나면 어떤 문제였는지 포스팅할 필요가 있을 듯 하다. 그리고 레벨 2 까지를 어떻게 작성할 지 구상했다. 아직까지 전체적인 과제의 난이도가 어렵다고 생각하지는 않지만 스프링의 깊이가 너무나 깊어 한번 빠지면 빠져나오기 쉽지 않은 듯하다. 이번 주는 과제를 빨리 마무리하고 작성한 코드의 자세한 분석과 스프링 개념들을 열심히 공부해야겠다. - 잘한 점 레벨 1 과제를..
20221203 항해 4주차- 오늘 한 일 이번주는 개인과제 2개와 팀과제 1개가 존재한다. 2개 중 1개는 완료했다. 1개를 수정하던 중, @Valid가 있는 것을 발견하고 이를 사용하기 위해 코드를 수정했다. 하지만 @Valid는 제대로 동작하지 않았고 아직까지 해결 방법을 찾지 못했다. 여러 방법들을 시도했지만 해결을 못해 답답한 마음이 컸다. 해당 문제를 해결하고 나면 어떤 문제였는지 포스팅할 필요가 있을 듯 하다. 그리고 레벨 2 까지를 어떻게 작성할 지 구상했다. 아직까지 전체적인 과제의 난이도가 어렵다고 생각하지는 않지만 스프링의 깊이가 너무나 깊어 한번 빠지면 빠져나오기 쉽지 않은 듯하다. 이번 주는 과제를 빨리 마무리하고 작성한 코드의 자세한 분석과 스프링 개념들을 열심히 공부해야겠다. - 잘한 점 레벨 1 과제를..
2022.12.05