목록공부 (39)
DecordRay
머신러닝이란? 알고리즘을 이용하여 데이터를 분석하고, 분석 결과를 스스로 학습한 후, 이를 기반으로 어떠한 판단이나 예측을 하는 것! (참고 - 글쓴이는 지도학습 위주로 학습을 진행하고 있기 때문에 비지도학습과 강화학습에 대해서는 다루지 않습니다!) 머신러닝은 크게 2가지 목적에 따라 분류 될 수 있다. 1. 학습 방법에 따른 분류 2. 과제에 따른 분류 이에 대해 좀 더 자세하게 알아보자! 학습 방법에 따른 분류 지도학습(Supervised Learning) 학습 대상이 되는 데이터에 정답을 주어 규칙성, 즉 데이터 의 패턴을 배우게 하는 학습 방법 비지도 학습(Unsupervised Learning) 정답이 없는 데이터 만으로 배우게 하는 학습 방법 강화 학습(Reinforcement Learning..
주로 헷갈리는 3가지 용어에 대해 확실하게 알아보자! + 캐시를 아는것은 웹 크롤링간에도 도움이 된다! 쿠키(Cookie) HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다. HTTP에서 클라이언트의 상태 정보를 클라이언트의 PC에 저장하였다가 필요시 정보를 참조하거나 재사용할 수 있다. 특징 하드디스크(SSD)에 저장되는 데이터이다. 이름, 값, 만료일(저장 기간 설정), 경로 정보로 구성되어 있다. 클라이언트에 총 300개의 쿠키를 저장할 수 있다. 하나의 도메인 당 20개의 쿠키를 가질 수 있다. 하나의 쿠키는 4KB(=4096byte)까지 저장 가능하다. 예시 쇼핑 웹 사이트 이용시 추천 상품이 뜨..
데이터를 요청하는 가장 대표적인 방식인 Get, Post에 대해 알아보자! GET 방식 GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링을 통해 전송하는 방식 쿼리스트링 - URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 요청 파라미터 쿼리스트링이 여러 개이면 &로 연결 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정 페이지를 링크하거나 북마크할 수 있다. 쿼리스트링을 포함한 URL 예시 www.example-url.com/resources?name1=value1&name2=value2 여기서 요청 파라미터명은 name1, name2이고, 각각의 파라미터는 value1, value2라는 값으로 서버에 요청을 보낸다. * TIP - GET 방식으로 요청 ..
웹 크롤링을 학습하기 앞서 웹 페이지에서 받은 응답(Response) 정보를 아는 것도 중요하다! HTTP 상태 코드 HTTP 상태 코드(HTTP Status Code)는 서버에서 설정해주는 응답(Response) 정보이다. 특히 프론트엔드 개발자 입장에서는 이 내용을 아는 것이 중요한다. why? - 이 상태 코드를 통해 서버와의 통신에서 어느 부분이 문제인지 확인 할 수 있기 때문. 또한 웹 크롤링 간에도 서버의 response를 받아와야 하기 때문에 알아야 할 필요가 있다. 2xx - 성공 200번대의 상태 코드는 대부분 성공을 의미합니다. 200 : GET 요청에 대한 성공 204 : No Content. 성공했으나 응답 본문에 데이터가 없음 205 : Reset Content. 성공했으나 클라이..
웹 크롤링을 학습하기 전에 URL에 대한 기본적인 이해부터 시작해보자! Client와 Server의 기본적인 구조 Client 브라우저를 통해 서버에 데이터를 요청 Server Client가 데이터를 요청하면 요청에 따라 데이터를 전송 URL(Uniform Resource Locator)이란? Ex) http://news.naver.com:80/main/read.nhn?mode=LSD&mid=shm&sid1=105&oid=001&aid=0009847211#da_727145 라는 url을 통해 구조를 알아보자! https:// - Protocol news - Sub Domain naver.com - Domain 80 - Port /main/ - Path read.nhn - Page ?mode = ?mode..
좋은 코드란? 사람마다 정의하는 좋은 코드의 기준은 조금씩 다르지만 이정도로 말할 수 있을 것 같다. 읽기 쉬운코드 중복이 없는 코드 테스트가 용이한 코드 객체 지향 프로그래밍(Object Oriented Programming) 장점 1. 코드의 재활용성이 높음 2. 절차지향방식보다 코드작성이 간편함 3. 디버깅이 쉬움 단점 1. 절차지향방식보다 처리속도가 느림 2. 설계에 많은 시간이 걸림 특징 1. 캡슐화 - 사용자에게 객체의 기능과 사용법만 제공하고 내부는 감추어 쉽게 사용할 수 있게 하는 기법 데이터 보호 - 사용자가 데이터에 직접 접근하는 것을 차단하여 객체 내 데이터 및 코드의 손상과 오용을 막을 수 있음 추상화 용이 - 추상화를 통해 프로그래밍 문제를 쉽게 개념화 할 수 있음 사용법 용이 -..
1. HTTP 관련 질문 HTTP, HTTPS(TLS(SSL))/HTTP 1.1 2.0 3.0/ HTTP RESTFUL / HTTP 응답코드 외우기 2. 웹브라우저에 google.com 치면 일어나는 과정 3. OS 스레드 , 프로세스 차이(멀티스레드와 멀티프로세스차이, PCB) 4. DB 트랙잭션과 트랙잭션 특성 4가지 5. OS 데드락, 데드락 조건 4가지, 동기화( 뮤텍스, 세마포어, 모니터, 스핀락, 어토믹 설명) 6. 언어관련 지식 JAVA면 JVM, GC/ JAVA 객체지향, 솔리드, 프로그램 실행의 일련과정 객체지향 vs 절차지향, 오버라이딩 오버로딩, 인터페이스, 추상클래스, 가상함수 등 7. TCP vs UDP (TCP, UDP 특성) 8. 세그멘테이션, 페이징 (내부단편화 ,외부단편화)..