본문 바로가기

전체 글

(68)
결정 트리 ( Decision Tree ) 결정트리는 분류와 회귀 모두 가능한 지도 학습 모델 중 하나이다. 결정 트리는 마치 스무고개를 하듯이 예/아니요 질문을 이어가면서 학습합니다. 이렇게 특정 기준에 따라 데이터를 구분하는 모델을 결정 트리 모델이라 한다. 한번의 분기 때마다 변수 영역을 두 개로 구분한다. 질문이 너무 많아 지면, 오버피팅이 될 수 있습니다. 가지치기 ( Pruning ) 오버피팅을 막기 위한 전략으로 가지치기라는 기법이 있다. 즉, 최대 깊이나 터미널 노드의 최대 개수, 한 노드가 분할하기 위한 최소 데이터 수를 제한하는 것이다. 엔트로피( Entropy ), 불순도 ( Impurity ) 불순도란, 해당 범주 안에 서로 다른 데이터가 얼마나 섞여 있는지를 뜻한다. 결정 트리는 불순도를 최소화하는 방향으로 학습을 진행한다..
UML ( Unified Modeling Language ) 프로그램 설계를 표현하기 위해 사용하는 그림으로 된 표기법 이해하기 힘든 복잡한 시스템을 의사소통하기 위해 만듦. 객체지향 언어와 밀접한 관련이 있기에 객체지향 모델링 언어라고도 불린다. 소프트웨어 시스템, 업무 모델링, 시스템의 산출물을 규정하고 시각화하여 문서화하는 언어이다. 프로그래밍 언어는 아니다. 모델링 언어일뿐 방법론은 아니다. asfirstalways.tistory.com/95 [개발상식] 13.UML이란? UML(Unified Modeling Language) 정의 프로그램 설계를 표현하기 위해 사용하는, 주로 그림으로 된 표기법을 의미한다. 객체지향 언어와 밀접한 관련이 있기에 객체지향 모델링 언어라고도 불린다. 소프 asfirstalways.tistory.com
DBMS ( Database Management System ) DBMS 데이터베이스 관리 시스템 즉, 데이터베이스를 조작하는 소프트웨어를 칭함. 다수의 사용자가 데이터베이스 내의 데이터를 접근할 수 있도록 설계된 시스템 DBMS의 필수 기능 정의 기능 ( DDL : Data Definition Language ) 데이터베이스가 어떤 용도이며 어떤 식으로 이용될 것이라는 것에 대한 정의가 필요함. CREATE, ALTER, DROP, RENAME ALTER TABLE table_name ADD COLUMN ex_column varchar(32) NOT NULL; ALTER TABLE table_name DROP COLUMN ex_column; ALTER TABLE table_name1 RENAME table_name2; 조작 기능 ( DML : Data Manipul..
프로그래머스 KAKAO BLIND 2020 가사 검색 LEVEL4 ( 트라이 ) JAVA 프로그래머스 KAKAO BLIND 2020 가사 검색 LEVEL4 ( 트라이 ) JAVA 풀이 트라이 자료구조를 통해서 해결해야 하는 문제다. queries 마다 문자열 길이 별로 Trie배열에 저장해주는 식으로 문제를 해결한다. 소스 코드 package kakao; public class LyricSearch2020 { public static void main(String[] args) { String[] words={"frodo","front","frost","frozen","frame","kakao"}; String[] queries={"fro??","????o","fr???","fro???","pro?"}; solution(words,queries); } public static final in..
라우터와 스위치 허브(Hub) 여러 대의 컴퓨터를 연결해서 네트워크를 만들어주는 장치 데이터 패킷을 받으면 연결된 모든 장치들에게 모두 보낸다. 모든 장치들이 데이터 패킷을 받고 자신에게 온 데이터 패킷인지 확인하고 필요하면 취득한다. 즉, 단순 분배를 하는 중계 장치 스위치(Switch) 스위치는 연결된 장치들의 IP와 MAC주소를 모두 테이블 형태로 가지고, 원하는 목적지에 데이터 패킷을 전송하는 장치이다. 허브와 달리 스위치는 무작정 데이터 패킷을 뿌리는 것이 아니라, IP와 MAC 주소를 기반으로 필요한 장치에게만 데이터 패킷을 전송한다. 가령, 87.90.40.2:5000 의 IP와 Port로 요청이 들어왔다고 가정해보겠다. 이 경우 스위치는 해당 요청을 받아서, 테이블에서 요청된 IP와 Port에 해당하는 M..
멀티 스레딩 프로세스 vs 스레드 프로세스 운영체제로부터 자원을 할당받는 작업의 단위. 실행 중인 프로그램의 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것을 말한다. 운영체제로부터 주소 공간, 파일, 메모리 등을 할당 받으며 이것들을 총칭하여 프로세스라고 한다. 스레드 프로세스가 할당받은 자원을 이용하는 실행의 단위 프로세스의 실행의 단위다. 한 프로세스 내에서 동작되는 여러 실행 흐름으로 프로세스 내의 주소 공간이나 자원을 공유할 수 있다. 하나의 프로세스를 다수의 실행 단위로 구분하여 자원을 공유하고 자원의 생성과 관리의 중복성을 최소화하여 수행 능력을 향상시키는 것을 '멀티스레딩'이라고 한다. 이 경우 각각의 스레드는 독립적인 작업을 수행해야 하기 때문에, 각자의 스택과 PC레지스터 값을 갖고..
GET vs POST 둘다, HTTP 프로토콜을 이용해 서버에 무언가 요청할 때 사용하는 방식이다. GET 방식은, URL을 통해 모든 파라미터를 전달하기 때문에 주소창에 전달 값이 노출됨. URL 길이가 제한이 있기 때문에 전송 데이터 양이 한정되어 있고, 형식에 맞지 않으면 인코딩해서 전달해야 한다. POST 방식은, HTTP BODY에 데이터를 포함해서 전달함. 웹 브라우저 사용자의 눈에는 직접적으로 파라미터가 노출되지 않고 길이 제한도 없다. 보통 GET은 가져올 때, POST는 수행하는 역할에 활용된다. GET은 SELECT성향이 있어서 서버에서 어떤 데이터를 가져와서 보여주는 용도로 활용된다. POST는 서버의 값이나 상태를 바꾸기 위해 활용된다.
트라이 ( Trie ) 자료구조 트라이 문자열에 특화된 자료구조이며, 문자열 집합을 표현하는 트리 자료구조이다. 우리가 원하는 원소를 O(n)으로 찾을 수 있다. 위 그림을 보면, blog를 예로 들 때, b, bl, blo, blog 순으로 트리에 저장되어 있는 것을 볼 수 있다. 이는 각각 blog의 접두사들이다. 이러한 이유들 때문에 트라이는 접두사 트리 ( Prefix Tree )라고도 불린다고 한다. 트라이 단점 트라이의 치명적 단점은 공간 복잡도다. 문자열에서 각각의 문자별로 하나의 노드가 필요한데, 예를 들어 알파벳 소문자 a~z가 포함되어있다면 기본적으로 26개의 포인터 배열을 가지고 있어야 하는 문제가 생긴다. 이렇게 되면, 최종 메모리는 ( 포인터 크기 * 포인터 배열 개수 * 트라이에 존재하는 총 노드의 개수 ) 가..