본문 바로가기

Til

(21)
이분탐색과 시간복잡도 Q. 이분탐색이 무엇이고 시간복잡도는 어떻게 되며 그 이유는 무엇인가요? 👼 이분탐색이란 이분탐색이란, 정렬된 배열에서 특정 값을 찾는 탐색 알고리즘이다. 배열의 중간을 기준으로 데이터를 탐색하기 때문에 반드시 데이터가 정렬된 상태로 존재해야 한다. 이진 탐색의 시간 복잡도는 O(logN)으로 배열을 전수 조사하는 O(N)에 비하면 상대적으로 빠른 탐색 알고리즘에 속한다. O(logN)만에 값을 찾을 수 있는 이유는 중간을 기준으로 탐색 대상을 절반씩 줄여나가기 때문이다. 전체 데이터의 수를 N이라고 하자. 1) 첫 번째 탐색 후 절반만 남아 남은 수가 N/2개. 2) 두 번째 탐색에서 다시 절반만 남아 남은 수가 N/2×1/2개. 3) 세 번째 탐색에서 다시 절반이 남아 남은 수가 N/2×1/2×1/2..
트리와 그래프 Q. 트리, 그래프를 비교하여 설명해주실 수 있을까요? 그래프 그래프는 노드(하나의 점)와 노드 간을 연결하는 간선으로 구성된 자료 구조이다. 이를 통해 연결된 노드 간의 관계를 표현할 수 있는 자료구조이다. 트리 트리는 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조이다. 그러나 트리는 그래프 중에서도 특수한 케이스에 해당하는 자료구조이다. 트리는 두 개의 노드 사이에 반드시 1개의 경로만을 가지며 사이클이 존재하지 않는 방향 그래프이다. 이러한 특성 때문에 '최소 연결 트리'라고 부르기도 한다. 부모-자식 관계가 성립하기 때문에 계층형 모델이라고도 한다.
[221031] OSI 7계층 & TCP/IP 📝 OSI 7계층 1. OSI(Open Systems Interconnection Reference Model)의 정의 다양한 컴퓨터 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구(ISO)에서 만든 개념 모델이다. 네트워크 프로토콜 디자인과 통신을 7계층으로 나누어 정의했다. OSI 표준 모형은 7계층으로 이루어져 있으며, 계층 별로 역할이 나누어져 있다. 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 파악할 수 있기 때문이다. 흐름을 알아보기 쉽고 7계층 중에서 특정한 곳에 이상이 생기면 다른 계층의 장비나 소프트웨어를 건드리지 않고 이상이 생긴 계층만 고칠 수 있다. Example from OSI 7 계층이란?, OSI 7 계층을 나눈 이유 PC방에서 롤을 하는데 연결이 ..
[MySQL] 문법 정리 데이터베이스 데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통 C (Create): 데이터의 생성을 의미 R (Read): 저장된 데이터를 읽어오는 것을 의미 U (Update): 저장된 데이터를 변경! D (Delete): 저장된 데이터를 삭제하는 것을 의미 Select 쿼리문의 개념 👉 쿼리(Query)문이란? 쿼리는 질의를 의미. 데이터베이스에 명령을 내리는 것을 의미함. 여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미. checkins: 여러분이 강의실 들어오시며 남기는 '오늘의 다짐'이 들어있어요 courses: 스파르타의 개설 강좌 정보가 들어있음. enrolleds: 유저별 강좌 등록정보가 들어있음 enrolleds_detail: 유저..
20221110 TIl RESTful API, 표기법정리 RESTful API를 작성하려고 찾아보다보니까 1. 복수 > 단수 2. 명사 > 동사 3. 하이픈(-) > 밑줄(_) 4. 소문자 > 대문자 5. 컬렉션 필터링 : URL 쿼리 > 새로운 API https://blog.pumpkin-raccoon.com/115 REST API 컨벤션 Top5! 단수, 복수, 네이밍 등의 url 설계를 위한 best practice 알아보기 개발을 하다보면 가장 어려운 것 중에 하나가 바로 네이밍입니다. 어쩔 때에는 변수와 함수 이름을 고민하는 것이 개발 시간의 상당 부분을 차지하기도 하는데요. 이러한 네이밍에 대한 고민은 blog.pumpkin-raccoon.com https://kmkunk.tistory.com/139 REST API..
20221110 TIl RESTful API, 표기법정리 RESTful API를 작성하려고 찾아보다보니까 1. 복수 > 단수 2. 명사 > 동사 3. 하이픈(-) > 밑줄(_) 4. 소문자 > 대문자 5. 컬렉션 필터링 : URL 쿼리 > 새로운 API https://blog.pumpkin-raccoon.com/115 REST API 컨벤션 Top5! 단수, 복수, 네이밍 등의 url 설계를 위한 best practice 알아보기 개발을 하다보면 가장 어려운 것 중에 하나가 바로 네이밍입니다. 어쩔 때에는 변수와 함수 이름을 고민하는 것이 개발 시간의 상당 부분을 차지하기도 하는데요. 이러한 네이밍에 대한 고민은 blog.pumpkin-raccoon.com https://kmkunk.tistory.com/139 REST API..
null인 필드는 response에서 제외하고 싶을때TIL 2022. 11. 1. 09:50 @JsonInclude(JsonInclude.Include.NON_NULL)을 사용하면 된다 @JsonInclude(Include.NON_NULL) private ProfileInfo profile; 또는 스프링 2.5버전 이후에서는 yaml이나 properties파일에 모든 ObjectMapper 에 동작하도록 작성할 수 있다 // properties spring.jackson.default-property-inclusion: NON_NULL // yaml spring: jackson: default-property-inclusion: non_null 개인적으로는 처음 개발시작부터 협의된 것이 아니라면 null 인 필드도 response로 내려주는게 좋다고 생각한다 왜냐하면 프론트단에서 DB 레이어에서..
@어노테이션 args constructor 비교(Required와 No 같이 쓰지 말 것) @RequiredArgsConstructor// final 혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어준다. @AllArgsConstructor //여기에 필드에 쓴 모든생성자만 만들어줌 @NoArgsConstructor //기본 생성자를 만들어줌 위 정도로만 간단하게 알고 있었는데 RequiredArgs 사용한 곳에 NoArgs를 추가했더니 에러가 나서 찾아봤다. 공식 문서....!! 항상 초기화가 필요한 final이 붙은 field가 있는데 @NoArgsConstructor을 사용한다면 compile error가 발생할 것이다. https://siahn95.tistory.com/entry/Lombok-%EA%B3%B5%EC%8B%9D-%EB%AC%B8%EC%84%9C%EB%A5%BC-..