Tiny Finger Point Hand With Heart
본문 바로가기
728x90
반응형

1일1CS53

52. 공인(Public)IP VS 사설(Private)IP IP 주소란? IP 주소(Internet Protocol address, 표준어: 인터넷규약주소)는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다. 요약하자면 IP 주소란 인터넷에 접속하기 위해 컴퓨터나 스마트폰 등에 부여하는 고유한 주소라고 정의할 수 있겠다. 공인 IP (Public IP) 인터넷 사용자의 로컬 네트워크를 식별하기 위해 ISP.. 2023. 4. 16.
51. 쿠키와 세션 HTTP의 특징과 쿠키와 세션을 사용하는 이유 쿠키를 발급받고 사용하는 과정 HTTP 프로토콜의 특성이자 약점을 보완하기 위해서 쿠키 또는 세션을 사용한다. 기본적으로 HTTP 프로토콜 환경은 "connectionless, stateless"한 특성을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야한다. 이 특성을 보완하기 위해서 쿠키와 세션을 사용하게된다. connectionless 클라이언트가 요청을 한 후 응답을 받으면 그 연결을 끊어 버리는 특징 HTTP는 먼저 클라이언트가 request를 서버에 보내면, 서버는 클라이언트에게 요청에 맞는 response를 보내고 접속을 끊는 특성이 있다. 헤더에 keep-alive라는 값을 줘서 커넥션을 재활용하는데 HTTP1.1에서는 이것이 디폴트다... 2023. 2. 8.
50. 함수형 프로그래밍의 특징과 장점 함수형 프로그래밍(函數型 프로그래밍, 영어: functional programming) : 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과는 달리, 함수형 프로그래밍은 함수의 응용을 강조한다. 프로그래밍이 문이 아닌 식이나 선언으로 수행되는 선언형 프로그래밍 패러다임을 따르고 있다. 함수형 프로그래밍은 순수한 함수를 작성하고, 공유된 상태와 변경 가능한 데이터 및 부작용을 피하여 소프트웨어를 작성하는 프로세스이다. 함수형 프로그래밍은 선언형 프로그래밍이며, 애플리케이션의 상태는 순수한 함수를 통해 전달된다.애플리케이션의 상태가 공유되고, 객체의 메소드와 사용되는 객체지향 프로그래밍과는 대조.. 2023. 2. 7.
49. IPC(Inter Process Communication)란? IPC란? 프로세스는 독립적으로 실행된다. 이처럼 독립적인 공간을 가진 프로세스 간 통신에 사용되는 기법이 IPC 통신이다. 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간의 통신을 할 수 있게 된다. IPC = Inter-Process Communication 프로세스들 사이에 서로 데이터를 주고받는 행위 위 그림처럼 우리가 사용하는 프로세스들은 모두 유저공간(user-space, user-mode)에서 개별로 OS로부터 할당받은 독립된 공간에서 운행중에 있다 말한것 처럼 프로세스는 독립된 공간에서 운행하다보니 서로간에 통신이 어렵다는 문제가 있다 이를 해결하고자 커널 영역(kernel-space, kernel-mode)에서 IPC(Inter-Process Communication)라는 프.. 2023. 2. 6.
48. HTTP의 GET과 POST 비교 HTTP 웹상에서 클라이언트와 서버 간에 데이터를 주고받을 수 있는 프로토콜 클라이언트가 HTTP 프로토콜을 통해서 서버에 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 전송 GET 방식 GET 방식은 클라이언트가 서버로 데이터를 요청하기 위해 사용되는 Method이며 GET 요청을 할 때는 Body 부분은 비어있고 헤더에 Body의 콘텐츠 타입을 명시하는 Content-Type 헤더 필드도 적지 않습니다. 아래와 같이 URL뒤에 쿼리 스트링(Key와 Value)을 붙이고 HTTP 패킷의 헤더에 포함해서 서버에 데이터를 요청합니다. http://localhost:3000/login?id=admin&pw=1234 URL의 "?" 뒤에서부터 쿼리 스트링으로 데이터를 표현하는데 사실 중요한 값들이 노.. 2023. 2. 3.
47. 데이터베이스 정규화란? 정규화란? 데이터베이스 정규화는 관계형 데이터베이스 데이터 모델의 중복을 최소화하고 데이터의 일관성, 유연성을 확보하기 위한 목적으로 데이터를 분해하는 과정을 뜻한다. 일반적으로 크고 제대로 조직되지 않은 테이블들을 잘 조직된 여러 개의 테이블을 나누는 과정이라고 생각하면 이해하기 쉽다. 정규화를 하는 목적은 데이터들을 조금 더 효율적으로 관리하는데에 그 목적이 있다. 불필요하거나 중복되는 데이터들을 제거. 이상현상(Anomaly)을 방지. 데이터 저장을 논리적으로 함. 중복을 배제하여 삽입, 삭제, 갱신 이상의 발생을 방지. 각 릴레이션에 중복된 종속성을 여러개의 릴레이션에 분할. 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 함. 데이터 삽입 시 릴레이션을 재구성할 필요성 감소. 효과적인 검.. 2023. 2. 3.
46. 애자일이란? 애자일 방법론이란? Agile은 기민한, 날렵한이란 뜻으로 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다. 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수의 프로세스와는 비교가 많이되는 반대의 개념이다. 애자일 방법론의 진행 과정 애자일 방법론은 계획 → 설계(디자인) → 개발(발전) → 테스트 → 검토(피드백) 순으로 반복적으로 진행된다. 계획을 세운 후 다음 단계까지 기다려서 절차대로 진행하는 폭포수 모델과 달리 먼저 진행 후 분석, 시험, 피드백을 통하여 개선하여.. 2023. 2. 1.
45. TDD(Test Driven Development)란? TDD(Test Driven Development) 란? TDD란 Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계를 중요시한다. Tip eXtream Programming(XP) 미래에 대한 예측을 최대한 하지 않고, 지속적으로 프로토타입을 완성하는 애자일 방법론 중 하나이다. 이 방법론은 추가 요구사항이 생기더라도, 실시간으로 반영할 수 있다. TDD, .. 2023. 1. 31.
44 . DB index 인덱스(Index)란? 인덱스는 데이터베이스 테이블에 대한 검색 성능의 속도를 높여주는 자료 구조라고 한다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 이렇게 인덱스가 생성하였다면 앞으로 쿼리문에 "인덱스 생성 컬럼을 WHERE 조건으로 거는 등"의 작업을 하면 *옵티마이저에서 판단하여 생성된 인덱스를 탈 수가 있다. 만약 인덱스를 타게 되면 아래의 그림과 같이 인덱스를 타게 되고 먼저 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오는 식으로 동작을 하여 검색 속도의 향상을 가져올 수 있다. 또한 인덱스 생성 시 데이터를 오름차순으로 정렬하기 때문에 정렬된 주소체계라고 표현할 수 있다. (아래 그림을 보.. 2023. 1. 30.
728x90
반응형