본문 바로가기

CS 기본 지식4

개발 - 디자인 패턴 이 글은 '면접을 위한 CS 전공지식 노트 - 주홍철'을 읽고 부하고 정리한 내용을 작성한 글이다. 디자인 패턴이란 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 많들어 놓은 것을 의미한다. 여기서 설명할 디자인 패턴들은 아래와 같다. 싱들톤 패턴 팩토리 패턴 전략 패턴 옵저버 패턴 프록시 패턴 이터레이터 패턴 노출모듈 패턴 MVC 패턴 1. 싱글톤 패턴(singleton pattern) 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 클래스는 큰 틀의 형태로 이 틀을 기반으로 알맹이를 채워 넣는 실체가 인스턴스이다. 인스턴스는 여러 가지 만들 수 있지만 싱글톤 패턴은 오직 하나의 인스턴스만을 만들어 이를 기반.. 2023. 5. 23.
백엔드, 프론트 서버를 연결할 때: 'CORS' 문제 및 해결법 나는 백엔드를 spring 프레임워크로, 프론트를 react 프레임워크로 개발을 할 때 가장 처음 직면한 문제가 있었다. 그것은 바로 'CORS' 문제였다. 아마 대부분의 개발자들이 프론트 담당이든 백엔드 담당이든 개발을 하면서 무조건 적으로 직면하였을 문제이다. 이 글에서는 CORS에 대해 간단하게 설명하고 어떻게 해결하는지를 작성할 것이다. 이를 해결하는 법은 다양하게 있지만 내가 사용하는 방식만을 작성할 것이니 다른 방법이 궁금하다면 다른 글들을 참고해 보길 바란다. CORS 란 교차 출처 리소스 공유(Cross-Origin Resource Sharing)란 서버가 웹 브라우저에서 리소스를 로드할 때 다른 오리진을 통해 로드하지 못하게 하는 HTTP 헤더 기반 메커니즘이다. 프론트엔드 서버를 만들어.. 2023. 3. 20.
웹서버와 WAS, 포워드 프록시, 리버스 프록시 이 글은 웹서버와 WAS, 그리고 포워드 프록시와 리버스 프록시에 대해 간단하게 작성한 글이다. 우선 위키백과에 나와있는 내용들을 보자. 웹 서버(Web server)는 HTTP 또는 HTTPS를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해 주는 서비스 프로그램을 말한다. 웹 애플리케이션 서버(Web Application Server, 약자 WAS)는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크이다. 인터넷상에서 HTTP를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)로 볼 수 있다. 웹 애플리케이션 서버는 동적 서버 콘텐츠를 수행하는 것으로 일반적인 웹 서버와 구별이 되며, 주로 데이터베이.. 2023. 1. 16.
URL과 URI 의 차이 웹 개발을 하다 보면 URL와 URI를 자주 듣는다. URL을 기본으로 많이 들어왔기에 'URI도 URL이다'라고 생각을 하는 경우가 많았다. 엄밀하게 말하자면 URL은 URI의 하위 개념이기에 혼용해도 무방하다. URL(Uniform Resource Locator)은 '이 곳에 가면 당신이 원하는 것을 찾을 수 있다'와 같은 상징적인 의미가 좀 더 강하다면, URI(Uniform Resource Identifier)은 '당신이 원하는 곳의 주소는 여기이다'와 같이 좀 더 현실 적이고 구체적인 의미가 있다. URI의 'I'는 마치 데이터베이스의 PK와 같은 의미로 사용된다고 생각할 수 있다. 간단히 말하자면 URL은 자원이 실제로 존재하는 위치를 가리키며, URI는 자원의 위치뿐만 아니라 자원에 대한 고.. 2022. 2. 22.