목록전체 글 (291)
개발자로 후회없는 삶 살기
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 빈 생명주기 콜백빈이 생성되거나 죽기 직전에 스프링이 빈 안에 있는 메서드를 호출해줄 수 있는 기능이다. 빈이 처음 등록되면서 생성될 때, 초기화할 때 호출되고 빈이 사라지기 직전에 안전하게 종료할 수 있는 메서드를 호출하는 내용이다. 3가지 방식이 있다. => 예제서버가 뜰 때 미리 외부 네트워크와 연결을 하고 내려갈 때 미리 연결을 끊어야하는 서버가 있어야 한다고 해보자. 어플 시작 시점에 connect()를 호출하여 미리 연결을 맺어 두어야하고 종료할 때 discount()를 호출해서 연결을 끊어야한다. public class NetworkClient { private String url; ..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 다양한 의존 관계 주입 방법1. 생성자 주입빈에 등록하기 위해 생성자를 호출할 때, @Autowired가 있으면 생성자의 인자의 타입에 해당하는 스프링 빈을 컨테이너에서 찾아서 주입한다. 1) 생성자 호출 시점에 딱 1번만 호출되고 변하지 않은 불변 의존관계를 보장하고자 할 때 사용 2) 생성자가 하나면 autowired 생략 가능3) 빈 등록과 의존 관계가 동시에 일어남 2. 세터 주입set 메서드에 autowired를 붙이면 된다. 재대입으로 인해, final을 제거해야 한다. 빈을 등록하는 단계와 의존 관계를 주입하는 단계가 나뉘어져 있고 빈을 전체 한 번에 다 생성하고 주입을 하는 순서이다. 3. 필..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 화면 동작 원리웹 어플리케이션에서 첫 진입점은 컨트롤러이다. 도메인/URL로 요청이 오면 매칭되는 메서드를 호출한다. 웹 브라우저에서 요청을 하면, 내장 톰켓이 받고, 스프링으로 전달하여 요청에 매칭되는 메서드를 찾고 실행시킨다. 1) 스프링 프론트 컨트롤러에서 해당 메서드를 실행2) 인자로 Model을 넣어주고 addAttribute로 키-벨류 형태로 저장3) 뷰 리졸버가 반환형에 명시된 파일명으로 주소를 만듦4) 브라우저에게 template 폴더에 있는 html을 반환반환된 문자열은 논리적 주소일 뿐이며, 이를 뷰 리졸버가 물리 주소로 변환하여 html을 찾고 브라우저에게 반환한다. resources:t..
서론※ 아래 내용을 다룹니다.조인 원리종류 https://github.com/SangBeom-Hahn/boost-interview GitHub - SangBeom-Hahn/boost-interview: Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇. Contribute to SangBeom-Hahn/boost-interview development by creating an account on GitHub.github.com 본론- 조인의 원리이너 조인, 아우터 조인 등 조인의 기반이 되는 원리를 알아보자. 1. 중첩 루프 조인1) 선행 테이블의 모든 행을 순차적으로 조회2) 각 행마다 두 번째 테이블의..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- 실행 계획DBMS가 실행을 할 때 어떻게 쿼리가 실행되는지 분석한 것을 보여주는 것으로 실행 계획을 함으로써 적절한 인덱스를 선택할 수 있다. type은 위에서 부터 조회 속도가 빠른 순이다. 개발자는 ALL을 없애는 방향으로 개발하면 된다. - pk로 검색first name은 중복 가능한 컬럼이라 데이터를 찾고 또 다음 행을 찾는 full scan을 하는데 중복을 불허한 컬럼은 검색할 데이터 1개를 찾고 바로 끝내서 매우 빠르다. 이 처럼 중복을 불허한 컬럼으로 인덱스를 생성하고 단 1건 검색하면 실행 계획 const를 사용한다. pk 검색이 가장 빠르고 일반적으로 pk 검색이 가장 좋다. - UQ로 검색..
서론※ 과거에 기록한 내용에서 중요한 부분만 발췌하여 모두가 이해하기 쉽게 다시 서술한다. 본론- JVM, JDK, JRE, JAR 구분1. JVM자바 바이트 코드를 어떻게 실행할 지에 대한 표준 스펙으로 바이트 코드를 OS에 특화된 코드로(기계어) 변환하고 실행하는 것의 표준이고 구현체이다. class 파일을 열어보면 바이트 코드를 디컴파일해서 보기 좋게 만들어 준다. JVM이 바이트 코드를 Mac, Window에 맞는 머신 코드로 변경한 후(기계어) 실행하는 것이다. 이외에도, 클래스 로드, 메모리에 로드하고 실행하는 자바를 사용하는 개발자를 위한 OS 인터페이스라고 볼 수 있다. 하는 일이 물리 컴퓨터의 OS와 비슷하다. ※ 바이트 코드 : java 파일을 컴파일해서 생긴 class 파일 안에 들어..
서론※ 아래 내용을 다룹니다.용어정규화트랜잭션인덱스https://github.com/SangBeom-Hahn/boost-interview GitHub - SangBeom-Hahn/boost-interview: Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇. Contribute to SangBeom-Hahn/boost-interview development by creating an account on GitHub.github.com 본론- DB란?일정한 규칙을 통해 구조화되어 저장되는 데이터의 모음 ※ 용어1. DBMSDB를 관리하는 시스템으로 DB를 설치하면 자동으로 설치된다. 사용자 입장에선 DB의 ..
서론※ 아래 내용을 다룹니다.프로세스스레드공유 자원과 경쟁상태교착상태https://github.com/SangBeom-Hahn/boost-interview GitHub - SangBeom-Hahn/boost-interview: Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇Naver BoostCamp 6기, AI 엔지니어 기반을 다지는 공간 🎇. Contribute to SangBeom-Hahn/boost-interview development by creating an account on GitHub.github.com 본론- 프로세스의 상태1. 생성 상태프로세스를 생성한 상태로 fork와 exec 시스템 호출로 프로세스를 만든 상태이며, 이때 PCB가 만들어진다. fork..