DI의 약자는 Dependency Injection 즉, 의존성 주입을 의미한다. IOC의 약자는 Inversion of Control 즉, 제어의 역전을 의미한다.
Aop는 Aspect-Oriented Programming의 약어로 관점 지향 프로그래밍을 의미한다.
MVC는 model–view–controller의 줄인말로, MVC 패턴은 프로젝트를 구성할 때 그 요소를 3가지 역활로 구분하는 디자인패턴을 말한다.
처음 스프링 프로젝트를 하기로 계획했을 때가 기억이 난다. 프로젝트를 스프링으로 할 것인가? 스프링 부트로 할 것인가?
기존의 MVC의 Controller에서 Service로 왜 또 분리하였는가? repository는 무엇인가?
자바는 왜 모든 클래스가 Object를 상속 받는가? 자바의 어노테이션은, 자바의 어떤 기능을 통해서 동작할까?
ArrayList와 LinkedList의 공통점은 사이즈를 정하지 않고 동적으로 활용할 수 있다는 점이다.
가비지 컬렉터는 더이상 참조하지 않아 필요없는 객체를 메모리(힙)에서 해제하는 것을 말한다.
Map Multimap,TreeMap, HashMap, LinkedHashMap에 대해 정리해보았다.
두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 말한다.
서버를 한개만 사용하다보면, 서버의 처리 능력보다 많은 양의 트래픽이 들어오는 상황이 발생하는 문제가 발생하기도 한다.
쿠키는 HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다. 세션은 서버**에 정보를 잠시 저장할 수 있는 특별한 저장 공간이다.
쿠키에는 지워져도 되고, 조작되거나 가로채이더라도 큰 지장이 없는 수준의 정보들만을 보관하도록 되어 있다. 즉, 쿠키에는 보안정보를 저장하면 안된다. 쿠키는 어떻게 정보를 유출할 수 있을까?
JWT란 Json Web Token의 약자입니다. 어려운 말로 정리하자면, 전자 서명된 URL-safe (URL로 이용할 수있는 문자 만 구성된)의 JSON 형식으로 인증에 필요한 정보들을 암호화시킨 토큰을 의미합니다.
간단하게 말하면, 필요한 메모리 공간을 필요한 크기. 개수 만큼 사용자가 직접 지정하여 미리 할당받아 놓고 필요할 때마다 반납하는 기법을 말합니다.
하나의 작업을 수행하기 위해 필요한 데이터베이스의 연산들을 모아놓은 것. 데이터베이스에서 논리적인 작업의 단위(SELECT,INSERT,DELETE,UPDATE )이며 장애가 발생했을때 데이터를 복구하는 작업의 단위. 다수의 사용자가 동시에 사용할 수 있도록 제어단위
SQL SELECT문의 처리 순서를 정리했다.
일반적으로 DeadLock(교착상태)을 설명하자면, 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황을 말한다.
서버 엔진이 필요한 물리적인 데이터를 가져오는 장치를 말한다.데이터베이스 관리 시스템 (DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제(CRUD 참조)하는 데 사용하는 기본 소프트웨어 컴포넌트이다.
격리레벨에 대해 정리하였습니다
트랜잭션에서 동시성이란 여러 사용자들이 하나의 데이터베이스에 접근했을 때 적절한 통제 조치가 있어야 한다는 것을 말합니다.
STREAM은 람다식과 함께 자바 8에서 추가된 “함수형 프로그래밍을 지원하기 위한 클래스로, Java의 컬렉션 데이터에 대해 SQL 질의문 처럼 데이터를 처리할수 있는 기능이다. 즉, 선언형으로 컬렉션 데이터를 처리할 수 있는 것이다.
네이버 분산처리 기술에 대해 정리해보았습니다.
영속성 컨텍스트란‘시스템이나 애플리케이션이 종료되도 데이터는 남아있도록 엔티티(Entity)를 저장하고 관리하는 저장소를 말한다.
Merge는 branch를 통합하는 것이고, Rebase는 branch의 base를 옮긴다.Merge나 Rebase나 branch간 내용을 합치기 위한 방법이다. 두 방법은 최종 내용 또한 같다.
다행히도 한번이라도 commit이 된 내용이라면, 심지어 현재 보이는 git tree 상에 보이지 않는 commit들 까지도 local git repository안에 commit log들이 남아 있다.
인덱스는 어떤 데이터가 하드디스크의 어디에 있는지 위치 정보를 가진 주소록과 같은 개념이다. 인덱스 리빌드란 기존의 인덱스를 삭제하고 재생성하는 방법이다.
데이터베이스에서 데이터를 저장하는 방식에 대해 정리하였습니다
API Gateway는 수신되는 모든 요청을 가로채서 API 관리 시스템을 통해 전송하여 필요한 다양한 기능을 처리합니다. 중간에 API Gateway 서버로 모았다가 다시 목적지로 뻗어나가는 구조로 API Gateway는 api 가 지나다니는 통로라고 생각하면 된다.
마이크로서비스란 작고, 독립적으로 배포 가능한 각각의 기능을 수행하는 서비스로 구성된 프레임워크. 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법을 말한다.
실행계획이란 사용자가 SQL을 실행하여 데이터를 추출하려고 할 때 옵티마이저가 수립하는 작업 절차이다. 즉, 'SQL을 데이터베이스에서 어떻게 처리하여 데이터를 가져올것인가?’를 예상하는 계획표이다.
DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합. 즉, DB에 대한 작업을 정리한 절차를 RDBMS(관계형 데이터 베이스 관리 시스템)에 저장한 쿼리의 집합이다. 영구저장모듈이라고도 불린다.
단일 장애점은 시스템구성 요소 중에서, 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다.어느 한 요소가 공격 받을 경우 시스템 전체의 가용정, 보안성 등에 문제가 생길 수 있는 지점이다단일 고장점, 단일 실패점이라고도 한다.
어떤 기능이 약해지거나 제대로 동작하지 않을 때, 이에 대처하는 기능 또는 동작을 말한다. fallback은 api 호출시 발생하는 예외처리를 위한 클래스를 정의한다. 실패에 대해서 후처리를 위해 설정해 두는 method이다.
애플리케이션의 중단 없이 배포를 하는 것가장 단순한 배포 전략으로, 기존 버전의 서버를 모두 삭제한 다음 새로운 버전의 서버를 생성하는 방법이다.
인덱스는 데이터 레코드를 빠르게 접근하기 위해서 <키, 포인터>쌍으로 구성되는 데이터 구조이다.
1번 조회해야할 것을 N개 종류의 데이터 각각을 추가로 조회하게 되서 총 N+1번 DB조회를 하게 되는 문제이다. 즉, JPA의 Entity 조회시 Query 한번 내부에 존재하는 다른 연관관계에 접근할 때 또 다시 한번 쿼리가 발생하는 비효율적인 상황을 말한다.
공통 기능을 모아서 처리 할 수 있는 방법으로 Interceptor, Filter, AOP가 사용된다. 하지만 이 세가지는 약간의 차이점이 존재하는데 가장 큰 특징은 호출되는 시기이다.
샤딩은 수평으로 확장하는 기법 중 하나로, 테이블을 특정 기준으로 나눠서 저장 및 검색하는 것을 말한다.
데이터베이스의 부하를 분산시키는 데이터베이스 이중화 방식 중 하나로, 하나의 Master DB와 N대의 Slave DB로 구성된다.
MongoDB는 C++로 짜여진 오픈소스 데이터베이스이자 Document-Oriented(문서 지향적) NoSQL 데이터베이스이다.
Message Queue는 대용량의 데이터를 처리하기 위해 분산 처리할때 쓰는 것이다. 또한, 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나이다.
Java virtual machine으로 자바의 바이트 코드를 실행할 수 있다.자바 코드를 컴파일 하여 바이트코드로 변환하여 해당 운영체제가 이해할 수 있는 기계어로 실행할 수 있게 한다
CSR과 SSR의 특징과 장단점을 서술하였습니다.
http://www.naver.com 로 url 입력 IP 주소를 찾기 위해 캐시에서 DNS 기록을 확인 1) 브라우저 캐시 이미 방문한 적이 있는 웹 사이트에 대해 일정 기간 동안 DNS 기록을 저장 2) OS 캐시 3) 라우터 캐시 4) ISP ISP는 DNS 서버를 구축하고 있기 때문에 브라우저는 마지막으로...
주인님과 노예제도의 개념에 대해 설명하였습니다.
URI에 대해 정리하였습니다.
정보 은닉(data hiding)의 방법으로 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개념을 적용하는 것이 접근 제어자이다.
Hyper Text Transfer Protocol(HTTP)에 대해 버전별로 설명하였습니다.
웹 1.0, 2.0 3.0 에 대해 정리하였습니다.
shorten URL에 대해 설명하였습니다.
검색 및 분석 엔진인 Elasticsearch에 대한 개념을 설명하였다.
logstash에 대해 설명하였습니다.
HTTP 버전별 차이
오브젝트의 Pool 즉, 웅덩이를 만들어두고, 그 웅덩이 안에서 필요할 때마다 객체를 꺼내서 사용하는 것 .
LinkedHashMap에 대해서 정리하였다.
인사이트의 글 중 NIO와 IO에 대한 이야기가 있었는데, 기본 개념이지만 내가 모르는 개념이라 이 기회에 간단히 정리해보았다.
UncheckedException VS CheckedException
기초를 보완하자
기초를 보완하자
자바에서 코틀린으로 전환하면서 다양한 함수들이 있지만 제대로 활용하고 있지 않은것 같아서 어떤 함수들이 있는지 정리해보고자 한다. 존재라도 알면 쓰임을 생각해내서 활용하지 않을까?
오늘의 글은 '자바의 신'이라는 책에서 던져준 질문이다. 💡 '컴파일이 뭔지 설명할 수 있어?'
public static void main(String[] args) 에 대해 의문점을 가진적 있는가?
float과 double에 관심을 기울인적 있는가?