[클린 코드] 포스팅 썸네일 이미지

독서

[클린 코드]

목적 코드의 유지보수성과 가독성을 높여 생산성 증대에 도움을 주기 위함 목차 독서 계기 내용 정리 후기 1. 독서 계기 내 코드를 개선하고 싶어서 읽게 되었다. 나는 종종 일상생활에 필요한 아이디어를 떠올린다. 그리고 이를 프로그램으로 만들길 좋아한다. 하지만 그렇게 프로젝트를 진행하고 나면 기존에 진행했던 프로젝트들을 거들떠보지도 않았다. 사실 코드를 보면 다시 개발하고 싶은 마음이 뚝 떨어졌다. 왜냐? 코드를 읽기 너무 어려웠었다. 내게 필요한 기능만 되면 됬기 때문에 깨끗한 코드를 우선시 하기 보다는 기능을 우선으로 개발을 해왔었다. 나중에서야 해당 프로젝트를 고쳐보자니 코드가 엉망진창이라 유지보수할 마음도 안났을뿐더러, 일주일만 지난 코드도 이 메소드가 무슨 기능을 했었는지 찾아보는데 5분 이상은..

2021.04.25 게시됨

백엔드/Spring Security

[Spring Security] Spring Security 동작원리

목적 Spring Security의 기본적인 동작 원리 이해하여 활용도를 높이기 위함 목차 Spring Security란? Spring Security의 동작원리 Spring Security에서 사용되는 객체 1. Spring Security란? Spring Security is a Java/Java EE framework that provides authentication, authorization and other security features for enterprise applications. Spring Security는 엔터프라이즈 애플리케이션에 대한 인증, 권한 부여 및 기타 보안 기능을 제공하는 Java / Java EE 프레임 워크입니다. 간단하게 말해서 Spring 진영의 보안 관련 프..

2021.04.18 게시됨

[디자인 패턴] State 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] State 패턴

- 정의 객체 내부의 상태에 따라 다른 행동을 취할 수 있게 해주는 패턴이다 - UML 1. State인터페이스안에 두 가지 sitDown과 getUp메소드를 정의함 2. SittingPerson과 StadingPerson은 State인터페이스를 구현하여 getUP과 sitDown메소드를 오버라이딩함 3. Person클래스는 setState를 통해 상태를 설정하고, getUp과 sitDown을 통해 행위를 수행하도록 함 - 코드 State interface public interface State { public void sitDown(Person person); public void getUp(Person person); } SittingPerson class public class SittingPer..

2020.03.24 게시됨

[디자인 패턴] Mediator 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Mediator 패턴

- 정의 다대다 관계에서 일대다 관계로 만들어주는 패턴이다 - UML 1. Cook인터페이스는 배달원(중재자)을 설정하는 setMediator메소드와 음식을 만드는 makeFood메소드를 갖는다 2. Cook인터페이스를 구현한 ChineseChef, JapaneseChef, KoreanChef는 메소드를 오버라이딩하여 구현한다 3. Mediator클래스는 배달할 음식을 받는 deliveryFood메소드와 주문 고객을 추가하는 addCutomer메소드를 갖는다 4. Customer인터페이스는 음식을 받는 receiveFood메소드를 갖는다 5. Customer인터페이스를 구현하는 Apartment, Villa, Office클래스는 receiveFood메소드를 오버라이딩한다 - 코드 Cook interfac..

2020.03.23 게시됨

[디자인 패턴] Observer 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Observer 패턴

- 정의 어떤 객체에 이벤트가 발생했을 때, 이 객체에 등록된 옵저버들에게 통지하도록 하는 디자인 패턴이다 - UML 1. Subject인터페이스는 옵저버들을 추가, 삭제 및 알림 기능을 갖고 있으며 옵저버의 관리 역할을 한다 2. NewspaperPublisher클래스는 Subject인터페이스를 상속받아 옵저버들을 관리할 수 있다 3. Observer인터페이스는 update메소드를 통해 상태가 바뀔때 마다 그에 맞는 행동을 취할 수 있게 만든다 4. Subscriber1, Subscriber2, Subscriber3클래스는 Observer인터페이스를 상속받아 update메소드를 구현한다. 생성자를 통해 NewspaperPublisher에게 자기 자신을 등록하고, unsubscribe메소드를 통해 pub..

2020.03.22 게시됨

[디자인 패턴] Facade 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Facade 패턴

- 정의 일련의 서브시스템에 대한 통합된 인터페이스를 제공하여 여러 서브 시스템을 더 쉽게 사용할 수 있도록 해주는 패턴이다 - UML 1. Engine클래스는 엔진을 설치하는 installEngine메서드를 갖고 있다 2. Skeleton클래스는 뼈대를 생성하는 makeSkeleton메소드를 갖고 있다 3. Wheel클래스는 바퀴를 장착하는 equipWheel메소드를 갖고 있다 4. Car클래스는 생성자를 통해 각 클래스를 주입받고, makeCar메소드를 통해 makeSkeleton, installEngine, equipWheel의 메소드를 순차적으로 수행한다 - 코드 Engine class public class Engine { public void installEngine() { System.out..

2020.03.20 게시됨

[디자인 패턴] ChainOfResponsibility 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] ChainOfResponsibility 패턴

- 정의 요청이 들어올때 해당 요청을 처리할 수 없는 경우 다음 객체에게 문제를 넘김으로써 최종적으로 요청을 처리할 수 있도록 하는 패턴이다 - UML 1. Exception추상클래스를 생성한다 - Exception배열을 생성하여 4가지 Exception을 넣어준다 - Exception을 받아온 뒤 어떤 예외인지 찾기위해 next메소드를 수행하는 findError메소드 - Exception을 받아 현재 배열에 들어있는 예외들과 일치하는게 있으면 해당 Exception클래스를 반환하고 일치하는게 없으면 콘솔에 null을 반환하는 next메소드 - 파라미터로 받은 에러의 이름과 현재 클래스의 이름이 같은지 확인하는 check메소드 2. NullPointException, RuntimeException, Cl..

2020.03.19 게시됨

[디자인 패턴] Visitor 패턴 포스팅 썸네일 이미지

디자인패턴

[디자인 패턴] Visitor 패턴

- 정의 객체의 구조와 기능을 분리시켜 구조를 수정하지 않고도 새로운 동작을 기존의 객체 구조에 추가할 수 있게 만드는 패턴이다 - UML 1. Visitable인터페이스를 생성하고 Visitor타입을 받는 accept메서드를 선언한다 2. Visitable인터페이스를 구현하는 Office와 House클래스를 생성하고 Visitor타입을 받아 visit메서드를 실행하는 accept메서드를 구현한다. 각각의 name을 사무실과 가정집으로 설정한다 3. Visotr인터페이스를 생성하고 House와 Office타입을 받는 visit메소드를 선언한다 4. Visitor인터페이스를 구현하는 ComputerRepairman과 TVRepairman클래스를 생성하고 House와 Office타입을 받아 수리행위를 출력하..

2020.03.17 게시됨