본문 바로가기
반응형

IT/Knowledge272

CORS 란? 한가지 극단적인 예를 들어본다면,만약 어떤 악성 프로그램이 당신의 컴퓨터에 설치가 되고 해당 프로그램을 통해서 브라우저에서 특정 명령을 수행한다면 어떻게 될까?로그인이 세션으로 잡혀있지 않다면 로그인 작업때문에 문제가 되지 않겠지만,세션에 로그인 정보를 저장해두었다면 로그인 정보를 가지고 특정 사이트에서 특정 명령을 수행하게 될 것이고 문제가 발생할것이다. 그래서 브라우저에서는 허용된 주소만을 받기 위해서 이 CORS를 사용할것이다. 설명을 이어서 한다면브라우져에서는 보안적인 이유로 cross-origin HTTP 요청들을 제한한다.그래서 cross-origin 요청을 하려면 서버의 동의가 필요하고 만약 서버가 동의한다면 브라우저에서는 요청을 허락하고, 동의하지 않는다면 브라우저에서 거절하게 된다.이렇게.. 2022. 9. 14.
Context Switch(컨택스트 스위치) 란? 일단 해당 주제를 다루기 전에 프로세스에 대해서 개념이 정확히 잡히지 않았다면 아래 참고 포스팅을 보고 오는것을 추천한다. 멀티프로세스 환경에서 CPU 는 어떤 하나의 프로세스를 실행하고 있는 상태에서 인터럽트 요청에 의해 다음 우선 순위의 프로세스가 실행 되야할 때 기존의 프로세스의 상태 또는 레지스터 값을 저장하고 다음 프로세스를 수행하도록 새로운 프로세스의 상태 또는 레지스터 값을 교체하는 작업을 Context Switch(ing) 이라고 한다. 영어 이름을 그대로 번역을 한다면 문맥 교환 이라는 뜻이지만 이렇게 번역은 IT에서 옳지 않다. 그럼 좀더 자세하게 설명으로 들어가서 여기서 말하는 Context 란? 사용자들 간이나 혹은 시스템, 디바이스 등 상호작용에 영향을 미치는 것을 규정하는 정보를.. 2022. 9. 12.
Podman(RedHat) 지금의 개발 시대는 클라우드, MSA, 분산 등의 단어가 빠지면 이상할 정도로 개발의 추세가 로컬, 네이티브, 프라이빗한 환경에서 많이 변화해왔다. 그러면서 중요시되는 게 몇 가지 있는데 그중 하나는 docker와 k8s이다. 이 둘에 대한 설명은 아래 참고 포스팅에서 확인을 해보도록 하자. 짧게 설명을 하면 도커는 컨테이너 기반으로 동작을 하게 된다. 도커가 2017년도에 엔터프라이즈 버전을 상용화하면서 레드햇은 또 다른 컨테이너 기반의 오픈소스 기술인 Podman을 사용하여 레드햇의 엔터프라이즈 제품들을 출시하였다. 레드햇은 이미 출시한 RedHat Enterprise Linux에 Podman을 탑재시켰고 릴리즈 된 RedHat OpenShift Container Platform 4와 RedHat O.. 2022. 9. 10.
15 Factors 얼마전 포스팅에서 12 factors 에 대한 주제를 다룬적이 있다. 간단히 말하면 애플리케이션을 개발하거나 운영, 확장 등을 할때 개발 엔지니어와 회사로부터 얻은 노하우를 바탕으로 정리한 개발 방법론이다. 자세한 사항은 아래 참고 포스팅을 확인해보길 바란다. 공부를 하다보니 몇년 전 12factors 에 3가지를 추가해서 현재는 15가지라는 글을 보았고 포스팅을 추가 업데이트 해야겠다는 생각을 하였다. 3가지는 다음과 같다. API 우선 (API First) API 설계를 우선하여, 코드를 작성하기 이전에 설계하고자 하는 서비스의 의도와 기능을 명확하게 할수 있어야 한다. 관측 (Telemetry) 애플리케이션 성능 모니터링, 애플리케이션이 처리하는 초당 HTTP 요청의 평균 개수 등과 같이 비지니스에.. 2022. 9. 8.
12-Factor App 이란? Saas 기반이나 MSA 패턴 구조를 사용하며 개발을 할 경우에 프로그래밍 언어에 비종속적이며 DB, Queue, Memory-cache등과 조합할수 있는 방법론이 있는데, 그것이 바로 이 Twelve Factor 이다. 각 요소에 대해서 살펴보면. 1. 코드 베이스 버전 관리되는 하나의 코드베이스와 다양한 배포 각 Twelve-factor 앱은 각 코드베이스로 관리된다. 코드베이스는 Git, Mercurial, Subversion 같은 버전 컨트롤 시스템(VCS)을 사용하므로 변화를 추적하며, 버전 추적 데이터베이스, 즉 저장소(Repository)로 관리된다. 코드베이스와 앱 사이에는 항상 1:1 관계가 성립되어야 한다. 코드베이스가 여러개 있는 경우, 여러 앱으로 구성된 분산 시스템으로 간주하고 분.. 2022. 9. 4.
인피니티 스크롤 vs 페이지네이션(22.09.07) 게시판 등 데이터베이스에서 다행의 글을 가져올때 표현해줄수 있는 방법은 두가지가 있다. 인피니티 스크롤 말 그대로 무한대로 스크롤을 하면서 글을 가져오는 스타일이다. 모바일 기기에서 많이 선호하는 방식이고 대표적으로는 인스타그램이나 유투브 처럼 페이지를 넘기는것이 아닌 무한대로 계속 내리면 새로운 글이 보이는것이다. 무한 스크롤은 사용자가 페이지 하단에 도달했을 때, 콘텐츠가 계속 로드되는 사용자 경험(UX, User EXperience) 방식 이는 마치 끝이 없는 단일 페이지에서 끝없는 정보의 흐름을 경험하게 함 장점 유저들이 더욱 오래 머물수 있도록 해준다. 클릭보다 스크롤이 편하다. 모바일 최적화 단점 성능을 많이 잡아먹는다. 원하는 컨텐츠를 찾기에 불편하다. 페이지네이션 구글에서 검색을 하다보면 .. 2022. 9. 1.
객체 지향의 법칙 SOLID 객체 지향 언어에서는 설계할때는 흔히 SOLID 라고 부르는 5가지 설계원칙이 존재한다. 각각 하나씩 살펴보면 SRP (Single Responsibility) 단일 책임 원칙 클래스는 단 한개의 책임을 가져야 함 클래스를 변경하는 이유는 단 하나여야 함 이를 지키지 않으면, 한 책임의 변경에 의해 다른 책임과 관련된 코드에 영향을 미칠 수 있음 → 이렇게 되면 유지보수가 매우 비효율적 SRP 에서 이야기하는 책임이란, '기능' 정도로 생각하면 된다. 만약 한 클래스가 수행할 수 있는 기능 (책임) 이 여러 개라면, 클래스 내부의 함수끼리 강한 결합을 발생할 가능성이 높아진다. 응집도는 높고 결합도는 낮은 프로그램을 설계하는 것이 비로소 객체지향 설계의 핵심인데, 이것이 위반되는 것이다. 예를 들어 어떤.. 2022. 8. 31.
스택(Stack), 큐(Queue), 힙(Heap) 에 대해서 자료구조 알고리즘을 하다보면 스택, 힙, 큐에 대해서 많이 얘기를 들어봤을텐데 오늘 포스팅에서는 하나씩 설명을 해보려고 한다. 스택 선형 자료구조 Last In First out(LIFO) 구조 스택 특징 같은 구조의 같은 크기의 자료를 정해진 방향으로만 쌓을 수 있음 top으로 정한 곳을 통해서만 접근 가능(top이란 가장 쌓아둔 윗부분) 삭제는 top을 통해서만 가능 스택 연산 삭제 (pop()) : 스택에서 가장 위에 있는 항목을 제거 삽입 (push(item)) : item 하나를 스택의 가장 윗부분에 추가 읽기 (peek()) : 스택의 가장 위에 있는 항목을 반환 스택 포인터(SP) push나 pop을 할 때 해당 값의 위치를 알고 있어야 하는데 스택 포인터가 위치를 기억하고 처음 기본값은 -.. 2022. 8. 30.
웹서버와 WAS의 차이 이전 포스팅에서 WAS에 대해서 다룬적은 있다. WAS에 대한 내용이 궁금하다면 아래 참고 포스팅을 확인해보면 될것이다. 해당 포스팅에서도 웹서버와 WAS 를 비교하는 포스팅이었지만 한번 더 잡기 위해서 작성을 하였다. Web Server 웹서버의 의미는 소프트웨어와 하드웨어로 구분된다. 하드웨어는 Web 서버가 설치되어 있는 컴퓨터를 의미하고 소프트웨어는 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램을 의미한다. Web Server의 기능으로는 HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스 하는 기능을 담당한다. 요청에 따라 각 기능을 제공하는데 하나는 정적인 컨텐츠 제공을 하며.. 2022. 8. 29.
반응형