개요
객체지향 프로그래밍의 원칙을 이해한다.
Checklist
관심사의 분리 원칙이란 무엇인가요?
→ SoC, seperation of concerns
→ 관심사, 책임, 기능을 한가지씩 담당하는 개별적인 객체(부분)으로 분리해야 한다는 설계원칙이다.
웹에서는 이러한 원칙이 어떻게 적용되나요?
→ 관심사 분리 원칙을 구현하기 위해 단앨책임 원칙, 개방폐쇄 원칙, 인터페이스분리 원칙을 달성할 수 있다.
→ application의 functional programming(class)를 통해 각각의 동작이 OOP의 기본적인 분리원칙을 준수하고 있는지 파악이 가능하다.
→ unit test를 통한 동작 확인이나, 이러한 확인 과정을 통해 객체지향 프로그래밍이 잘 진행되고 있는지 확인할 수 있다.
로컬 스토리지란 무엇인가요?
→ 웹사이트의 cookie, session과 같은 정보들을 개인PC의 라이브러리 등 특정 공간에 저장하면서 사용자 맞춤적인 사이트 구동에 참조하는 저장소를 일컫는다.
→ 해당 정보들이 저장되어있는 공간에서 웹사이트가 참조하여, 사용자가 방문했던 이력 및 관심사 등을 파악하고 이를 이후 동작에서 활용한다.
→ 로컬 스토리지는 웹 상의 응용프로그램(application) 탭에서 확인할 수 있고, 로컬PC 라이브러리와 어떤 정보를 주고받았는지 파악할 수 있다.
참조개념
S : SRP(Single Responsibility Principle, 단일책임원칙)
→ 하나의 객체는 하나의 책임(객체간 영향을 최소화하고 한가지 동작만을 수행)만을 가지도록 설계되어야 한다.
→ 여러 class, 객체들이 기능을 공유하거나 영향을 받지 않도록 설계하며, 동시에 전체적인 function에 대한 응집도를 높인다.
O : OCP(Open Closed Principle, 개방폐쇄원칙)
→ 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 로직이 설계되어야 한다.
→ 클래스, 객체를 변경하지 않고도 클래스 환경을 변화할 수 있도록 구성한다.
L : LSP(Liskov Substitution Principle)
→ 부모 클래스와 자식 클래스 간의 일관성이 있어야 한다.
→ 클래스를 재정의하지 않으며, 자식 클래스는 최소환 부모 클래스의 행위는 수행할 수 있어야 한다.
I : ISP(Interface Segregation Principle)
→ 단일책임원칙과 밀접한 개념이며, 인터페이스를 클라이언트에 특화할 수 있도록 분리시켜야 한다.
→ 범용 인터페이스로 인해 여러 클라이언트(클래스)가 영향을 받기 보다는, 개별적인 클라이언트에 특화되어 서로의 영향을 최소화할 수 있도록 구성한다.
D : DIP(Depedency Inversion Principle)
→ 불가피한 의존관계를 형성할 때는 거의 변화하지 않는 객체, 변하기 어려운 객체에 의존하도록 설정한다.
→ 여기서의 의존관계란 한 클래스가 동작을 수행할 때 다른 클래스의 영향을 받는 경우를 말하며, 기본적으로 OOP는 이러한 의존관계를 최소화해야 한다.
쿠키
※ 기본적으로 HTTP request/response는 일회성으로, client와 server 간의 요청-응답이 종료되면 연결이 끊어진다.
→ 따라서 쿠키정보는 지속적인 데이터 교환을 위해 server로 계속 전송된다.
※ 이러한 client, server 간의 끊임없는 데이터(쿠키)교환으로 인한 불필요한 데이터 전송, 용량 낭비 등을 줄이고자 만든 client 저장소가 세션/로컬 스토리지이다.
※ 이와 더불어 cookie에 식별자를 추가하여 보안성을 강화한 것이 session이다.
세션
로컬
OOP 설계원칙
https://gmlwjd9405.github.io/2018/07/05/oop-solid.html
로컬저장소 / 쿠키저장소 / 세션저장소
https://racoonlotty.tistory.com/entry/%EC%BF%A0%ED%82%A4%EC%99%80-%EC%84%B8%EC%85%98-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%EB%A1%9C%EC%BB%AC-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%EC%99%80-%EC%84%B8%EC%85%98-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80
https://kadamon.tistory.com/8