반응형

CS 및 기반지식 100

[HTTP] HTTP에 대한 이해

게시판 제작을 위한 API 설계 중 HTTP에 대해 이해해야 할 필요성을 느끼고 공부하였다. HTTP(Hypertext Transfer Protocol)는 프로토콜이다. 프로토콜은 통신 규약, 통신을 위한 약속이라고 이해할 수 있다. 그렇다면 HTTP는 누구와 누구의 약속일까? 일반적으로는 클라이언트와 서버의 약속이다. 요즘은 서버와 서버 간에도 HTTP를 이용하여 통신한다고 한다. 통신이라는 것은 결국 '정보(data)'를 주고받는 것이다. 클라이언트의 애플리케이션과 서버의 애플리케이션이 정보를 주고받기 위해 약속한 것이 HTTP이다. 즉, 애플리케이션(응용 프로그램) 간에 데이터를 주고받기 위한 통신규약이자 약속인 것이다. 한편, HTTP는 TCP/IP 4계층에서 애플리케이션 계층 프로토콜에 해당한다..

[운영체제] 쉘 명령어와 시스템 콜 _ chatGPT (점점 예의를 갖추게 된다)

chat GPT의 답변이 정말 대단하다. 진위 여부에 대한 2차 검증이 당연히 필요하겠지만 공부하기 위해 알아보아야 할 맥락만큼은 chat GPT의 답변을 통해 충분히 알 수가 있다. 무엇보다, 어떤 질문이든 정성스럽게 답변을 해주고 이게 맞는 질문인지 고민을 하지 않고 꼬리 질문을 계속해도 된다. Q.쉘 명령어를 시스템콜이라고 이해해도 될까? A.아니요, 쉘 명령어와 시스템 콜은 서로 다른 개념입니다. 쉘 명령어(Shell command)는 컴퓨터 운영 체제의 명령어 인터페이스를 통해 사용자가 운영 체제와 상호작용하는 방법입니다. 쉘 명령어는 사용자가 터미널 또는 명령 프롬프트에서 입력하여 실행할 수 있는 명령어로, 예를 들어 파일 및 디렉토리 조작, 프로세스 관리, 네트워크 통신 등 다양한 작업을 수..

[운영체제] 운영체제를 공부해야하는 이유

도대체 java코드는 어떻게 cpu까지 도달할까? 라는 궁금증이 있었다. 기본기가 아직 부족한 것에 따른 우문인 것 같다. 이에 대해 운영체제 공부 중 문뜩 이해한 부분을 메모한다. 컴퓨터를 왜 쓰는가? '필요한 특정 프로그램'을 사용하기 위해 컴퓨터를 사용한다. 애니악 같은 초기의 컴퓨터는 미사일의 탄도 계산 같은 하나의 프로그램을 수행하였다. 현대의 일반 사용자들은 게임을 하거나 문서작업을 하거나 웹서핑을 목적으로 컴퓨터를 사용하곤 한다. 보통 컴퓨터를 켜면 문서작업 하나만 하지 않고 웹서핑을 하면서 음악을 들으며 문서작업을 하는 등 여러 프로그램을 이용하며 멀티 태스킹을 하게 된다. 프로그램과 데이터를 입력으로 넣으면(천공카드) 일괄적으로 배치처리를 하고 결과물을 출력하던(라인프린터) 초기의 컴퓨터..

[네트워크] NAT(Network Address Translation) 와 마스커레이드(Masquerade)

NAT(Network Address Translation,네트워크주소변환): -개인IP주소를 공인IP주소로 변환 -개인 네트워크 내의 여러 호스트가 동일한 공인 IP주소를 공유할 수 있도록 포트번호를 사용하여 구분 로컬네트워크와 퍼블릭네트워크(인터넷) 간의 통신을 가능하게 한다. IP주소 부족 문제를 해결하고 네트워크 보안 향상에 도움이 된다. IPv6에서는 IP주소부족문제가 완화되어 필요성이 상대적으로 감소되었다. 출처: chatGPT Masquerade(마스커레이드, 가면무도회) Firewalld에서 "마스커레이드"는 네트워크 주소 변환이나 NAT(Network Address Translation) 설정을 의미합니다. 마스커레이드는 네트워크 패킷이 내부 네트워크에서 외부로 나갈 때, 출발지 IP 주소..

[디자인패턴] Interpreter 패턴( 통역 패턴)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

[디자인패턴] Command 패턴 (커맨드 패턴, 액션 패턴, 트랜잭션 패턴)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

[디자인패턴] Proxy 패턴 (대리인 패턴)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

[디자인패턴] Flyweight 패턴 (플라이웨이트 패턴)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

[디자인패턴] State 패턴 (상태 패턴)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

[디자인패턴] Memento 패턴 (메멘토 패턴, Ctrl + Z)

▶디자인 패턴 ( Design Pattern) :프로그램 개발 시 문제 해결을 위하여 빈번히 사용되는 개발자들의 경험, 내적인 축적에 대하여, GoF(Gang of Four) 라 불리는 4인의 개발자들이 각각을 패턴으로 정의하고 이름을 붙였다. 이를 디자인 패턴 (Design Pattern) 이라고 한다. 23개의 디자인 패턴을 『Elements of Reusable Object-Oriented Software』 라는 책으로 발간하였다. ▷디자인 패턴의 용어를 빌리면 서로의 아이디어를 보다 용이하게 비교, 논의할 수 있게 된다. ▷재사용과 기능확장이 쉬운 소프트웨어를 만들기 위한 유익한 기법이 바로 디자인 패턴이다. -------------------------------------------------..

반응형