SY 개발일지
GoF(Gang of Four) 디자인패턴
CS 정리/개발 상식 2023. 5. 6. 21:26

디자인 패턴이란 디자인 패턴은 모듈의 세분화된 역할이나 모듈들 간의 인터페이스 구현 방식을 설계할 때 참조할 수 있는 전형적인 해결 방식을 말한다. 디자인 패턴을 통해 설계 문제, 해결 방법, 해결 방법을 언제 적용하며 그 결과는 무엇인지 등에 대해 알 수 있다. 또한 디자인 패턴은 한 패턴에 변형을 가하거나 어떠한 요구사항을 반영하면 다른 패턴으로 변형되는 특징이 있다. GoF 디자인 패턴 1995년 GoF(Gang of Four)라고 불리는 Erich Gamma, Richard Helm, Ralph Johnson, John Vissides가 처음으로 디자인 패턴을 구체화하였다. GoF의 디자인 패턴은 소프트웨어 공학에서 가장 많이 사용되는 디자인 패턴이다 목적에 따라 분류하여 생성패턴 5개, 구조 패..

article thumbnail
쓰레드(Thread)란?
CS 정리/개발 상식 2023. 5. 2. 23:57

프로세스(Process) 프로세스(process) 란 단순히 실행 중인 프로그램(program)이다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행중인 것을 말한다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원, 그리고 스레드로 구성된다. 스레드(Thread) 스레드(thread) 란, 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티 스레드 프로세스(multi-threaded process)라고 한다. 멀티 쓰레드 쓰레드가 둘 이상인 것을 말한다. 멀티 스레딩 컴퓨터는 여러 개의 스레드를 효과적으로 실행할 수 ..

article thumbnail
동기와 비동기, 블록과 논블록
CS 정리/개발 상식 2023. 4. 27. 23:00

요즘 동적 페이지 만드는 법에 대해 공부하고 있는데, 동적인 페이지를 만드는 데에 AJAX가 사용된다. 그래서 AJAX에 대해 공부하는 겸해서 동기와 비동기에 대해 알아보고자 한다. 이 때 동기와 비동기, 그리고 블록과 논블록의 개념이 같거나 비슷하다고 생각하는 사람들이 많아 함께 언급되는 경우가 많다. 따라서 블록과 논블록에 대해서도 함께 정리해보고자 한다. 동기와 비동기 동기와 비동기는 처리해야할 작업들을 어떠한 흐름으로 처리할 것인가에 대한 관점이다. 즉 호출되는 작업 완료 여부를 신경쓰는지에 따라, 함수 실행/리턴이 순차적인 흐름을 따르는지에 대한 여부가 관심사이다. 동기 (Synchronous) 동기란 각 참여자가 즉시(또는 가능한 한 즉시) 메시지를 수신(필요시 처리 및 회신)하는 실시간 통신..

쿠키(Cookie)와 세션(Session)
CS 정리/개발 상식 2023. 4. 20. 00:31

쿠키와 세션에 대해 알기 위해서는 우선 이것들이 왜 사용되는지에 대해 알아볼 필요가 있다. https://soyeonnnb.tistory.com/16 HTTP Protocol 의 특징 HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 한다. 클라이언트-서버 프 soyeonnnb.tistory.com HTTP Protocol 환경은 비연결성, 무상태라는 특징을 가지고 있다. 즉 서버가 클라이언트에 대해 매번 확인해야 한다. 예를 들어 어떠한 페이지에 로그인을 했어도, 비연결성, 무상태로 인해 다른 페이지로 넘어갈 때마다 로그인 상태가 유지가 되지 않기 때문에 새로이 로그인을 계속해서 해..

HTTP Protocol 의 특징
CS 정리/개발 상식 2023. 4. 18. 22:13

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 한다. 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미한다. HTTP Protocol에는 큰 특징 2가지가 있는데, 바로 비연결성과 무결성이다. 비연결성(Connectionless) HTTP는 비연결 지향형 통신 프로토콜이다. 클라이언트와 서버가 있다고 했을 때, 클라이언트가 서버에 요청을 날리면, 서버는 그 요청에 맞는 응답을 돌려주고 연결을 종료한다. 우리가 인터넷을 사용하고 있다는 것은 그 서버에 우리가 계속해서 연결이 되어있다고 생각을 할 수 있는데, 사실 그게 아니라는 것이..

article thumbnail
GIT과 GITHUB
CS 정리/개발 상식 2023. 4. 16. 15:24

Git과 Github의 차이에 대해 묻는 면접 질문이 들어오는 경우도 있다고 하니 한번 정리해보자 GIT Git은 리누스 토발즈가 2005년에 만든 분산 버전 관리 시스템(DVCS, Distributed Version Control Systems)이자 오픈 소스 버전 관리 시스템으로, Linux 소스코드를 관리할 목적으로 개발되었다. 오픈 소스 뿐만 아니라 상업용 프로젝트도 포함하여 엄청난 수의 소프트웨어 프로젝트들이 버전 관리를 위해 Git에 의존하고 있다. 분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 무결성, 분산, 비선형 워크플로를 지원한다. 따라서 소스 코드가 변경된 이력을 쉽게 확인할 수도 있고, 특정 시점의 버전과 비교하거나 특점 시점의 코드로 되돌아갈..