본문 바로가기

분류 전체보기

(644)
24일차 - Git bash 명령어 CSS 복습 https://flukeout.github.io/ CSS Diner A fun game to help you learn and practice CSS selectors. flukeout.github.io plate apple => 가능. 스페이스는 후손을 선택 plate > apple => 불가능. >는 자식을 선택 Git Bash ~ : 홈 디렉토리 pwd : 현재 경로 clear : 화면 초기화 cd 폴더_이름 : 이동 cd ~ : 홈 디렉토리로 이동 ls : 현재 디렉토리에 있는 파일 리스트 출력 ll(ls -l) : 파일 리스트 자세하게 출력 ls -al : 파일 리스트 자세하게 출력 + 숨김 파일 표시 start . : 탐색기 열림 touch 파일_이름 : 파일 생성(파일 이름 앞에..
(3부) B tree가 왜 DB 인덱스(index)로 사용되는지를 설명합니다 https://youtu.be/liPSnc6Wzfk B tree의 시간복잡도(B+ tree, B* tree 포함) : 조회/삽입/삭제 => avg & worst case = O(log N) Computer system CPU : 프로그램 코드가 실제로 실행되는 곳 Main memory(RAM) : 실행 중인 프로그램의 코드들과 코드 실행에 필요한 데이터, 혹은 그 결과로 나온 데이터들이 상주하는 곳 Secondary storage(SSD or HDD) : 프로그램과 데이터가 영구적으로 저장되는 곳( RAM). 실행 중인 프로그램의 데이터 일부가 임시 저장되는 곳. 데이터베이스도 여기에 저장! Secondary storage 데이터를 처리하는 속도가 가장 느리다. 데이터를 저장하는 용량이 가장 크다. bl..
(2부) B tree 데이터 삭제 동작 방식을 설명합니다 (DB 인덱스과 관련있는 자료 구조) https://youtu.be/H_u28u0usjA B tree의 특징 이진 탐색 트리(BST)를 일반화한 트리 부모 노드는 자녀 노드를 두 개 이상 가질 수 있다. 노드가 자녀를 x개 가졌다면 key는 x-1개를 가진다. 노드 내의 key들은 오름차순으로 저장된다. 모든 leaf 노드들은 같은 레벨에 있다. B tree 데이터 삭제 * 삭제도 항상 leaf 노드에서 발생한다. * 삭제 후 최소 key 수보다 적어졌다면 재조정한다. 1. key 수가 여유 있는 형제의 지원을 받는다. 2. 1번이 불가능하면 부모의 지원을 받고 형제와 합친다. 3. 2번 후 부모에 문제가 있다면 거기서 다시 재조정한다. * internal 노드 데이터 삭제 : leaf 노드에 있는 데이터(선임자나 후임자)와 위치를 바꾼 후..
(1부) B tree의 개념과 특징, 데이터 삽입이 어떻게 동작하는지를 설명합니다! (DB 인덱스과 관련있는 자료 구조) https://youtu.be/bqkcoSm_rCs 이진 탐색 트리(BST) : 모든 노드의 왼쪽 서브 트리는 해당 노드의 값보다 작은 값들만 가지고, 모든 노드의 오른쪽 서브 트리는 해당 노드의 값보다 큰 값들만 가진다. 자녀 노드는 최대 두 개 1. 자녀 노드의 최대 개수를 늘리기 위해서 부모 노드에 key를 하나 이상 저장한다. 2. 부모 노드의 key들을 오름차순으로 정렬한다. 3. 정렬된 순서에 따라 자녀 노드들의 key 값의 범위가 결정된다. ===> 이런 방식을 사용하면 자녀 노드의 최대 개수를 입맛에 맞게 결정해서 쓸 수 있다. ===> B tree B tree는 BST를 일반화한 tree. 최대 몇 개의 자녀 노드를 가질 것인지가 B tree를 사용할 때 중요한 파라미터 M : 각 노드의..
네트워크와 인터넷 개념 설명! 인터넷 동작 방식도 설명! ISP도 설명! https://youtu.be/oFKYzp6gGfc 인터넷 -- 모뎀 -- 공유기 -- 기기(무선/유선 연결) - 모뎀 : 네트워크 통신에 필요한 신호 변환 장치 - 공유기(Home router) : 여러 기기들을 인터넷에 연결될 수 있도록 하는 장치. 하나의 IP 주소로도 동시에 인터넷을 사용하는 것이 가능. 공유기에 연결된 기기들은 같은 네트워크 소속 랜포트 부족!? 스위치 연결 인터넷 -- 모뎀 -- 공유기 -- 스위치 -- 기기(무선/유선 연결) - 스위치(Switch) : 같은 네트워크 내의 기기들이 서로 통신할 수 있도록 하는 장치. 보통 공유기의 랜(LAN) 포트 수가 부족할 때 사용. 스위칭 허브 혹은 그냥 허브라고도 불림 - 네트워크 : 컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를..
[Spring] IoC(Inversion of Control, 제어의 역전), DI IoC(Inversion of Control, 제어의 역전) - 스프링에서는 일반적인 자바 객체를 new로 생성하여 개발자가 관리하지 않고 스프링 컨테이너에게 맡긴다. (싱글톤의 형태로 관리된다.) - 즉, 객체나 메서드에 대한 제어의 관리 권한을 제3자인 프레임워크로 넘긴다. 이를 "제어의 역전"이라고 한다. - 스프링 프레임워크의 가장 큰 특징이다. - IoC의 주된 목적: 의존 관계를 제거 => 느슨한 결합을 제공 => 클래스의 재사용성을 높임( => 중복 코드 제거) DI(Dependency Injection) 외부(스프링 컨테이너)로부터 사용할 객체를 주입 받는다. DI의 장점 의존성으로부터 격리시켜(의존하고 있는 객체와 분리하여), 코드 테스트에 용이하다. 불가능한 상황을 Mock와 같은 기술..
23일차 - 점프 투 스프링부트 3장(2) 마크다운 dependencies { ... implementation 'org.commonmark:commonmark:0.21.0' } 스프링부트가 내부적으로 관리하는 라이브러리에 포함되면 버전 정보가 필요없고 포함되지 않으면 버전 정보가 필요하다. 즉, commonmark는 스프링부트가 내부적으로 관리하는 라이브러리가 아니다. 스프링부트가 관리하는 라이브러리의 경우 버전 정보를 명시하지 않으면 스프링부트가 가장 궁합이 잘 맞는 버전으로 자동 선택한다. 따라서 라이브러리들의 호환성을 생각한다면 버전 정보는 따로 입력하지 않는 편이 좋다. 마크다운 컴포넌트 @Component public class CommonUtil { public String markdown(String markdown) { Parse..
WEB2 - OAuth 2.0 : 9.수업을 마치며 https://youtu.be/XpBf7ZiT_do OAuth를 대신하는 라이브러리는 많지만, OAuth의 원리를 모른다면 라이브러리도 이해하기 어려울 것 federated identity : 다른 서비스와의 연합을 통해 사용자를 식별하는 인증 체계