Dev/정리
-
[Spring Security] 스프링 시큐리티 주요 아키텍처Dev/정리 2023. 1. 20. 19:53
아래 내용은 Core Spring Security 스프링 시큐리티 기본 API & Filter 이해를 수강 후, 정리한 내용입니다. 전체적인 Spring Security의 전체적인 아키텍처와 동작과정을 나타난 것이다. 3가지 형태의 Spring Security 동작과정을 살펴볼 것이다. 1) 사용자가 처음 인증을 시도하는 경우 2) 인증 후 자원요청하는 경우 3) 첫번째 사용자과 동일한 계정으로 로그인을 시도하는 경우 1. 사용자가 처음 인증을 시도하는 경우 1. SecurityContextPersistenceFilter SecurityContextPersistenceFilter 내부에 있는 loadContext를 이용하여 Session에 저장된 이력이 있는지 체크한다. 처음 로그인을 시도하였기 때문에 ..
-
[Clean Code] 형식 맞추기Dev/정리 2022. 5. 17. 21:03
포맷팅이 중요한 이유 1. 가독성에 필수적이다 코드를 수월하게 읽어나갈 수 있다. 아마추어처럼 보이지 않는다. 포맷팅으로 인해 코드를 잘못해석해 버그를 발생할 위험을 줄인다. 2. 200라인 협업에서의 대부분의 코드들도 200라인 정도를 유지한다 코드 길이가 200라인을 넘어간다면, 클래스가 여러 개의 일을 하고 있을 수 있다. SRP에 위배된다. 3. 밀접한 개념은 서로 가까이 둔다. 행 묶음은 완결된 생각 하나를 표현하기 때문에 개념은 빈 행으로 분리한다. 변수는 사용되는 위치에서 최대한 가까이 선언한다. Java Class Declarations Class 내부 코드 순서 1. static 변수 public -> protected -> package -> private 순서 2. instance 변..
-
[Clean Code] 함수Dev/정리 2022. 5. 15. 11:24
SOLID (객체지향설계) 객체지향 설계의 5가지 원칙 1. SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 클래스는 하나의 기능만 가지며, 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이여야 한다. SRP 책임이 분명해지기 때문에, 변경에 의한 연쇄작용에서 자유로워 질 수 있다. 가독성 양상과 유지보수가 용이해진다. 실전에는 쉽지 않지만 늘 상기해야 한다. 2. OCP 개방/폐쇄 원칙 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 변경을 위한 비용을 줄이고, 확장을 위한 비용은 가능한 극대화 해야 한다. 요구사항의 변경이나 추가사항이 발생하더라도, 기존 구성요소에는 수정이 일어나지 않고, 기존 구성요소를 쉽게 확장해서 재사용한다. 객체지향의 추상화의 ..
-
[Clean Code] 깨끗한 코드, 의미 있는 이름Dev/정리 2022. 5. 14. 21:22
나쁜 코드란? - 성능이 나쁜 코드 - 의미가 모호한 코드 - 중복된 코드 나쁜 코드가 나쁜 이유 - 깨진 유리창 법칙 나쁜 코드는 깨진 유리창처럼 계속 나쁜 코드가 만들어지도록 한다. - 생산성 저하 나쁜 코드는 생산성을 저하 시킨다. - 새로운 시스템을 만들어야한다 현시스템을 유지보수하며, 대체할 새로운 시스템 개발은 현실적으로 매우 어렵다. 클린 코드 - 성능이 좋은 코드 - 의미가 명확한 코드(= 가독성이 좋은 코드) - 중복이 제거된 코드 -> 명료한 코드 간단한 코드 - 모든 테스트를 통과한다. - 중복이 없다. - 시스템 내 모든 설계 아이디어를 표현한다. - 클래스, 메서드, 함수 등을 최대한 줄인다. 의미 있는 이름 짓기 - 의도를 분명히 밝히기 // 잘못된 변수 int a; String..