A ship in harbor is safe, but that is not what ships are built for.

분류 전체보기 156

Ch01. 데이터 전처리(Data Preprocessing)

전체 데이터 = Training data + Test dataTraining data → Build the modelTest data → Test the model(예상값과 실제값 비교)상항에 따라 다르지만 일반적인 데이터 split 비율은 8:2 이다.  What is Feature Scaling서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작한 열에 대해서만 적용 가능정규화(Normalization)(열 내 모든 값 - 열의 최소값)/(열의 최대값 - 열의 최소값)모든 결과는 0과 1 사이모든 열 간 단위와 의미가 다르고, 무엇보다 값들의 편차의 단위가 서로 달라 열 간 중요도를 착각하기 쉬울 수 있어 정규화를 진행표준화(Standardization)(열 내 모든 값 - 열의 평균값)/(열의 표..

Ch05. HTTP헤더1 - 일반 헤더

1. HTTP 헤더 개요헤더 필드 = 필드이름: 필드값 → 이때 필드이름은 대소문자 구분 XHTTP 전송에 필요한 모든 부가 정보를 포함 → 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보표준 헤더 필드가 굉장히 많음 → 필요 시 임의 헤더 추가 가능HTTP 표준 1999년 RFC2616 → 2014년 RFC723x 등장메시지 본문(=페이로드)을 통해 표현 데이터 전달표현 : 요청이나 응답에서 전달할 실제 데이터표현 헤더 : 표현 데이터를 해석할 수 있는 정보 제공 → 데이터 유형, 데이터 길이, 압축 정보 2. 표현특정 resource(예를 들면, 회원정보..)를 어떠한 형태(html, json..?)로 전달할 지 결정표현 헤더 종류 → 전송, 응..

STUDY/Network 2024.12.15

Ch04. HTTP 상태코드

1. HTTP 상태코드 소개클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능서버가 클라이언트가 인식할 수 없는 상태코드를 반환 → 상위 상태코드로 해석해서 처리 2. 2xx - 성공클라이언트의 요청을 성공적으로 처리200 OK : 요청 성공201 Created : 요청 성공해서 새로운 리소스 생성 → 생성된 리소스(id같은 거…)는 응답의 Location 헤더 필드로 식별202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음 → 배치 처리에 사용204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 → save 기능 3. 3xx - 리다이렉션1요청을 완료하기 위해 유저 에이전트의 추가 조치 필요리다이렉션 : 웹 브라우저는 3x..

STUDY/Network 2024.12.14

Ch03. HTTP 메서드

1. HTTP APIURI = Uniform Resource Identifier → 가장 중요한 것은 리소스 식별!!!리소스 = 회원이라는 “개념” 자체 → 회원 리소스를 URI에 매핑!!!** 계층 구조 상 상위를 컬렉션으로 보고 복수 단어 사용 권장 ex) member → members리소스와 행위를 분리해야 함 → URI와 Method  2. HTTP 메서드 - GET, POSTGET : 리소스 조회서버에 전달할 데이터는 query를 통해 전달메시지 바디 사용 가능하지만, 권장 XPOST : 요청 데이터 처리 → 주로 등록에 사용메시지 바디를 통해 서버로 요청 데이터 전달주로 신규 리소스 데이터 등록, 프로세스 변경(요청 데이터 처리.. control URI), 다른 메서드로 처리하기 애매한 경우리..

STUDY/Network 2024.12.06

Ch02. URI와 웹 브라우저 요청 흐름, HTTP

1. URI= Uniform Resource IdentifierURI는 로케이터, 이름 또는 둘다 추가로 분류될 수 있음URI(리소스 식별) = URL(리소스 위치) + URN(리소스 이름)→ 위치는 변할 수 있지만, 이름은 변하지 않음 →  BUT, URN만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음 sheme://{userinfo@}host[:post][/path][?query][#fragment]프로토콜(HTTP, HTTPS, FTP)://HostName:Port/Path?QueryParameter→ 일반적으로 HTTP는 80포트, HTTPS(HTTP Secure)는 443포트를 이용하기에 포트번호 생략→ userinfo@는 URL에 사용자 정보를 포함해서 인증(거의 사용 X)→ pa..

STUDY/Network 2024.12.05

Ch01. 인터넷 네트워크

1. 인터넷 통신클라이언트와 서버가 그냥 바로 옆에 있다면 케이블로 연결해 데이터를 주고 받으면 됨→ But, 지리적으로 떨어져 있는 클라이언트와 서버는 복잡한 인터넷 망을 통해 데이터를 주고 받음이때, 인터넷망 내 여러 노드들을 거쳐 데이터가 Source → Destination으로 이동Q. 어떻게 복잡한 인터넷망을 넘어 목적지까지 도착할 수 있을까?  2. IP(인터넷 프로토콜)지정한 IP 주소(IP address)에 데이터를 전달 → 패킷 단위로 전송IP 패킷 = 출발지 IP + 목적지 IP + 전송 데이터 + 기타인터넷망의 노드들끼리 서로 전달받은 패킷을 던짐한계 존재 → TCP/UDP로 해결비연결성패킷을 받을 대상이 없거나 상대방이 서비스 불능 상태여도 일단 패킷 전송비신뢰성중간에 패킷이 사라질..

STUDY/Network 2024.12.05

[Day05 - 1427번] 소트인사이드

슈도 코드를 작성하면 다음과 같다. 더보기 str(정렬할 수) A(자릿수별로 구분해 저장할 배열) for(str 길이만큼 반복){ A 배열 저장 -> str.substring 사용 } for(i:0 ~ str길이만큼 반복){ for(j:i+1 ~ str 길이만큼 반복){ 현재 범위에서 max 값 찾기 } 현재 i의 값과 max 값 중 max 값이 더 크면 swap 수행 } A 배열 출력 구현 코드는 다음과 같다. import java.util.*; public class P_1427 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); int[] A = new int[str..

[Day05 - 1377번] 버블 소트

버블 정렬의 swap이 발생하지 않은 루프가 언제인지 알아내는 문제이다. 이 문제의 N의 최대 범위는 500000이기 때문에 버블 정렬도 문제를 해결할 경우 시간을 초과할 수 있다.(실제로 처음 문제를 풀었을 때 내가 그랬다;;;) 여기서 생각해봐야할 점은 안쪽 루프는 1 ~ n-i까지 swap을 수행한다는 것이다. 이는 특정 데이터가 안쪽 루프에서 swap의 왼쪽으로 이동할 수 있는 최대 거리는 1이므로, 데이터의 정렬 전 index와 정렬 후 index를 비교해 왼쪽으로 가장 많이 이동한 값을 찾으면 된다는 것이다. 슈도코드를 작성하면 다음과 같다. 더보기 N(데이터 개수), A(데이터 배열 -> 클래스를 데이터로 담는 배열) for (N만큼 반복) { A 배열 저장 ) A 배열 정렬 for (N만큼..

[Day05 - 2750번] 수 정렬하기

버블 정렬 파트에서 나온 내용이니 버블 정렬로 풀어보려 한다. N의 최대 범위가 1000으로 매우 작기 때문에 O(n^2)의 시간복잡도를 가진 버블 정렬로 문제를 해결할 수 있다. 먼저 슈도코드를 작성하면 다음과 같다. 더보기 N(정렬할 수의 개수) A(수를 저장할 배열) for (i: 0 ~ N-1) { for (j: 0 ~ N-i-1) { 현재 A배열의 값보다 1칸 오른쪽 배열의 값이 더 작으면 swap } } 코드로 구현하면 다음과 같다. import java.util.*; public class P_2750 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[]..

[Day05 - 이론] 버블 정렬 & 선택 정렬

버블 정렬 두 인접한 데이터의 크기를 비교해 정렬하는 방법 루프를 돌면서 인접한 데이터 간의 swap 연산으로 정렬 시간복잡도 O(n^2) 정렬 과정 1) 비교 연산이 필요한 루프 범위를 설정 2) 인접한 데이터 값을 비교 3) swap 조건에 부합하면 swap 연산 수행 4) 루프 범위 끝날 때까지 2~3을 반복 5) 정렬 영역 설정, 다음 루프 실핼할 때 해당 영역 제외 6) 비교 대상이 없을 때까지 1~5를 반복 선택 정렬 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법시간복잡도 O(n^2) 시간복잡도 O(n^2) 정렬 과정 1) 남은 정렬 부분에서 최솟값 또는 최댓값을 찾음 2) 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap 3) 가장 앞..