본문 바로가기

전체 글

브라우저 저장소로써 Web Storage 와 Cookie 의 차이와 용례 1. Cookie 쿠키는 클라이언트 로컬에 저장되는 키/값 쌍의 저장 데이터이다. 애플리케이션의 상태를 유지하고 사용자 경험을 개선하는 방법 중 하나로 이용된다. 다만 민감한 정보를 저장하는 것은 조금 적합치 않으며 보안을 고려해야한다. 유지되는 기간 쿠키는 설정된 만료 날짜 또는 세션 기간 동안 브라우저에 저장된다. 세션 쿠키는 브라우저 세션이 종료될 때 삭제되며, 영속적인 쿠키는 설정된 만료 날짜에 따라 삭제된다. 도메인 경로 제한 쿠키는 특정 도메인과 경로에서만 접근 가능합니다. 이것은 웹 사이트가 자신의 쿠키에만 접근할 수 있도록 보안을 유지하는 데 도움이 됩니다. 용도 : 인증 및 세션 관리: 쿠키는 사용자 인증을 유지하고 로그인 상태를 추적하는 데 사용됩니다. 세션 쿠키는 사용자의 브라우저 세.. 더보기
라이브러리와 프레임워크의 차이 1. 라이브러리 라이브러리는 개발을 할 때 프로그램이 사용할, 적용할 비휘발성의 자원의 모임이다. 즉 자주 사용되는 코드들을 모듈화한 것으로 이해하면 좋다. 데이터, 문서, 미리 작성된 코드, 클래스 등 여러 요소가 포함될 수 있다. Java를 예시로 들자면 java.lang, java.util 등을 얘기할 수 있다. 2. 프레임워크 프레임워크는 일종의 뼈대를 뜻한다. 프로그램의 기반 구조이며 소프트웨어의 특정 문제를 해결하기 위한 클래스와 인터페이스의 집합이기도 하다. 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.. 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다. 컴포넌트들은 재사용이 가능하다. 높은 수준에서 패턴들을 조작화 할 수 있다. 3. 라이브러.. 더보기
객체지향의 5원칙 (SOLID) 1. SOLID 올바른 객체지향 작성을 위해 수립된 원칙이다. 5가지의 원칙으로 구성되며 줄여서 SOLID라고 부른다. 필수는 아니나 적용될 수 록 올바른 객체지향이라고 할 수 있다. 2. 5원칙 종류 단일 책임의 원칙(Single Responsibility Principle, SRP) 개방 폐쇄의 원칙(Open Closed Principle, OCP) 리스코프 치환의 원칙(Liskov Substitution Principle, LSP) 인터페이스 분리의 원칙(Interface Segregation Principle, ISP) 의존성 역전 원칙(Dependency Inversion Principle, DIP) 3. 단일 책임의 원칙 단일 책임 원칙이란 하나의 객체는 단 하나의 역할 책임만 갖는다는 의미이.. 더보기
단일 장애 지점(Single Point Of Failure) 1.SPOF? 시스템 구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다. 이중화가 되어있지 않은 요소라면 SPOF일 가능성이 높다. 장애회복성을 위해서 SPOF가 없어야한다. 예를 들어 단일 서버에 단일 API를 이용하는 상황이라고 하자 이 중 API Server가 중단된 상태라고 해보자. 다른 요소의 정상 여부에 상관없이 전체 시스템이 중단된다. Server도 마찬가지다. 혹은 단일 인터넷망에서 서버에 연결된 인터넷망이 오류가 있을 경우는? 이 역시 SPOF다. 이를 해결하기 위해서는 서버나 DB 등의 개인 요소를 이중화를 하는 등의 대처를 통해 한 쪽이 장애가 났을 때 대응할 수 있는 환경을 구축하는 것이다. 그러나 이는 필연적으로 비용의 증가 등의 문제를 가져온다. -- 참조.. 더보기
Separation of concerns (관심사의 분리) 1. 관심사 분리란? 개발의 기본 원칙 중의 하나로 프로그램을 하나의 단일 블록으로 작성하지 말고 작은 조각으로 나누어 각각 간단한 개별 작업을 완료할 수 있도록 하는 원칙 즉 가장 낮은 레벨에서 긴 복잡한 함수를 쓰지 말라라고 말하는 것이다. 함수의 크기가 커지기 시작하면 함수가 너무 많은 작업을 처리한 다는 것이고, 함수를 분리할 필요가 있다는 뜻이된다. 이러한 경우 이를 리팩터링하여 더 간결한 모양으로 만들어야 한다. 이 프로세스 중에 원래 알고리즘의 일부가 내보내지고 개인 액세스 수준을 가진 별도의 작은 함수로 캡슐화된다. 이렇게하면, 코드가 명료해지고 다른 부분에서 재사용할 수 있게 된다. 간단한 예시로 이해를 돕자. public static void main(){ Scanner sc = new.. 더보기
객체지향 프로그래밍 패러다임과 함수형 프로그래밍 패러다임 1. 프로그래밍 패러다임 이전 글에서 한 번 설명했듯 프로그래밍 패러다임이란 개발자가 프로그래밍을 하는 데 있어서의 관념이나 체계를 이르는 말이다. 해당 게시글에서는 그 중 객체지향 프로그래밍과 함수형 프로그래밍에 대해 가볍게 다뤄본다. 2. 함수형 프로그래밍 함수형 프로그래밍은 소프트웨어의 크기가 점점 커지는 과정에서 복잡하게 엉킨 코드를 유지보수하기 어려워지는 것을 보완하기 위해 등장했다. 함수의 응용을 강조하고 가변을 멀리하는, 모든 것을 작은 함수를 기준으로 나누어 문제를 해결하는 기법이 근간이되는 프로그래밍이다. 이를 통해 가독성과 유지보수성을 높였다. 함수형 프로그래밍은 대입문이 없는 프로그래밍이다라는 표현을 쓴다. 사이드 이펙트가 생기지 않는 순수 함수를 1급 객체로 취급하여 파라미터나 반환.. 더보기
선언형 프로그래밍과 절차형 프로그래밍 1. 프로그래밍 패러다임 프로그래밍을 하는 데 있어서의 한 관념이나 체계를 이르는 말이다. 프로그래머에게 프로그래밍의 한 관점을 가지게하며 결정하게 하는 역할을 하게된다. 예시를 하나 들자면 객체지향 프로그래밍은 개발자에게 프로그램을 상호작용하는 객체들의 집합으로 바라보게 한다. 기본적으로 각 언어들은 하나 이상의 패러다임을 지원한다. 2. 선언형 프로그래밍 선언형 프로그래밍은 이론적으로 주로 두 가지로 이야기 되곤 한다. - 프로그램을 어떻게(How) 해야하는지 나타내기보단 무엇과(What) 같은지 표현하는 프로그래밍 - 함수형, 논리형, 제한형 프로그래밍 형태로 작성된 프로그램 즉 어떻게 작동하는지에 대한 부분은 추상화시켜 처리하고 '무엇을'에 집중하는 프로그래밍이 선언형 프로그래밍이라고 할 수 있다.. 더보기