분류 전체보기 24

Elastic search란?

Elastic Search Elastic Search는 아파치 재단의 루씬(Lucene)을 기반으로 개발된 오픈소스 검색 엔진이다. 하지만 기본적으로는 MongoDB나 Hbase처럼 대용량 스토리지로도 사용할 수 있다. NoSQL의 일종으로 분류가 가능하고 분산처리를 통해 실시간에 준하는 빠른 검색이 가능하다. Elastic Search의 장점 REST API 제공으로 플랫폼 독립적 사용 가능 → Database 서버에 각 요청을 Db 쿼리로 매핑해주는 애플리케이션을 추가로 만들지 않아도 됨 역색인 역색인이란? 여러 사드로 나뉘어진 정보들을 한 데 모으는 작업 시 용이. ex) 특정 사용자의 로그 데이터 조회 read 성능이 좋다 고가용성 (클러스터 구성으로 장애 대응 가능) write를 여러 노드로 분..

Elastic search 2021.05.12

카프카의 구성요소와 특징

1. 카프카의 구성요소 Broker: 카프카 애플리케이션 서버 단위 Recrod: 카프카의 메세지 전송 단위 Producer: 레코드를 전송하는 애플리케이션 Consumer: 레코드를 Polling하는 애플리케이션 Consumer Group: 다수의 Consumer 묶음 Consumer offset: 특정 Consumer가 가져간 레코드의 순서번호 Topic: 데이터(레코드)의 분리 단위 (다수의 파티션으로 이루어질 수 있다) Partition: 실제 레코드들이 저장되는 곳 Replication: 파티션 복제 기능(Topic이 아니라 Partition) ISR(In-Sync-Replication): 리더 + 팔로워 파티션의 Sync가 된 묶음. 2. 카프카의 특징 1. 확장성 카프카는 Publish/Su..

Kafka 2021.05.10

카프카와 메세지 큐

1. Kafka란? 카프카는 메세지 큐의 한 종류이다. 링크드인에서 개발했으며, 파편화된 데이터 파이프라인을 한 곳에 모아 처리할 수 있도록 중앙집권화하기 위해 만들어졌다. 2. 메세지 큐 2.1 메세지 큐란? 메시지 지향 미들웨어(영어:Message-oriented middleware, MOM)는 응용 소프트웨어 간의 데이터 통신을 위한 소프트웨어이다. 메세지 큐는 이 메세지 지향 미들웨어를 구현한 시스템이다. (메세지 지향 미들웨어가 인터페이스라면 메세지 큐는 구현체 정도 .. ?) 2.2 메세지 큐 사용 목적 비동기 처리 API Server에서 Storage에 특정 데이터를 저장해야 하는 상황이라고 가정하자. 아주 높은 확률로 API Server는 다수의 사용자 요청을 처리하느라 바쁜 환경일 것이다..

Kafka 2021.05.09

4주차

함께 일하고 싶은 동료와 반대로, 함께 일하기 꺼려지는 동료는 ? 함께 일하고 싶은 동료 진취적인 사람 항상 겸손하고 열린 마인드를 가지고 있는 사람 지식을 잘 공유하는 사람 상대방도 이해할 수 있도록 노력하는 사람 함께 일하기 싫은 동료 자기중심적인 사람 불평불만이 많고, 팀의 사기를 저하시키는 사람 자신의 의견만 강하게 내세우는 사람 결론은, 남을 배려하고 이해할 수 있는 개발자가 되도록 노력하자. 또한, 도전을 두려워하지 않고, 기꺼이 마주할 수 있는 개발자가 되자.

Naver Open Class 2020.08.10

스프링 MVC 구성 요소

( 왼쪽에 *이 붙어있는 class는 하나 이상의 객체를 가질 수 있는 class 이다.) Dispatcher Servlet의 기본 전략 DispatcherServlet.properties에 정의 MultipartResolver 파일 업로드 요청 처리에 필요한 인터페이스 HttpServletRequest를 MultipartHttpServletRequest로 변환해주어 요청이 담고 있는 File을 꺼낼 수 있는 API 제공 LocaleResolver 클라이언트의 위치(Locale) 정보를 파악하는 인터페이스 Default 전략은 요청의 accept-language를 보고 판단 ThemeResolver 애플리케이션에 설정된 테마를 파악하고 변경할 수 있는 인터페이스 HandlerMapping 요청을 처리할 ..

Spring 2020.08.02

DispatcherServlet이란

DispatcherServlet이란? 모든 url 마다 서블릿을 생성하고, 그것을 web.xml에 등록하고 하는 과정이 굉장히 비효율적이었고, 이를 해결하기 위해 Front Conroller 개념이 도입되었다. Front Controller는 모든 Http 요청을 받아서, 해당 요청을 처리할 Handler들에게 분배하는 역할을 한다. Spring에서 이 Front Controller가 바로 DispatcherServlet이다. DispatcherServlet 동작 원리 DispatcherServlet 초기화 아래의 특별한 타입의 빈들을 찾거나, 기본 전략에 해당하는 빈들을 등록한다. HandlerMapping: 핸들러를 찾아주는 인터페이스 HanlderAdapter: 핸들러를 실행하는 인터페이스 Hand..

Spring 2020.08.02

서블릿 리스너와 서블릿 필터

서블릿 리스너 웹 애플리케이션에서 발생하는 주요 이벤트를 감지하고 각 이벤트에 특별한 작업이 필요한 경우에 사용할 수 있다. 서블릿 컨텍스트 수준의 이벤트 컨텍스트 라이프 사이클 이벤트 컨텍스트 어트리뷰트 변경 이벤트 세션 수준의 이벤트 세션 라이프 사이클 이벤트 세션 어트리뷰트 변경 이벤트 서블릿 필터 들어온 요청을 서블릿으로 보내고, 또 서블릿이 작성한 응답을 클라이언트로 보내기 전에 특별한 처리가 필요한 경우 사용. 체인 형태의 구조. 서블릿 리스너 동작 확인 public class MyListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { System...

Spring 2020.08.01

서블릿이란 ?

서블릿이란 ? Java EE은 웹 애플리케이션 개발용 스펙과 API를 제공한다. 각 요청 마다 Thread를 사용한다 (생성하거나, pool에서 가져와서 사용) 가장 중요한 클래스 중 하나가 HttpServlet 그렇다면 서블릿 이전에 사용하던 기술은 ?? Common Gateway Interface 서블릿과는 달리 요청 당 Thread 가 아닌 Process를 만들어 처리 -> 속도가 느리다 서블릿의 장점 요청 당 Process가 아닌 Thread로 처리하기 때문에 빠르다. Java 기반이므로 플랫폼 독립적이다. Java 기반이므로 Java가 제공하는 보안을 사용할 수 있기 때문에 보안성 좋다. 이식성 서블릿은 누가 관리하는가 ?? : 서블릿 엔진 혹은 서블릭 컨테이너가 서블릿을 관리한다. (ex. 톰..

Spring 2020.07.31

3주차

NAVER가 중요시 하는 경험 너비 보다 깊이 한가지를 끝까지 파 본 경험 창업가형 개발자 참고로 네이버 개발직 자소서는 개발자분들이 확인하므로, '인사 담당자가 개발 전공이 아니라서 이 내용을 이해 못하면 어떡하지 ??'라는 고민은 안해도 될 듯 하다. 탄탄한 CS는 기본. 복습하고 또 복습하자. Q. 한가지 언어와 툴 vs 여러가지 언어와 툴 여러가지 언어와 툴을 경험해보는 것도 좋지만, 한가지 언어 혹은 툴은 깊이 있게 다뤄보는 것이 좋다. 튼실한 전산 기초를 가져 새로운 언어 학습의 러닝커브를 줄일 수 있느냐가 중요하다. 기초가 잘 다져있다면 새로운 언어도 빠르게 내 것으로 만들 수 있다. Q. 채용 과정에서 탈락 시 재지원을 못하는 등의 규정이 따로 있는가 ? 규정은 따로 없지만, 이전에 지원했..

Naver Open Class 2020.07.31

스프링 MVC 소개

MVC란 ? M: Model (평범한 자바 객체 POJO) V: View (ex. HTML, JSP, Thymeleaf, mustache 등등 ) C: Controller(스프링 @MVC) MVC의 역할 모델: 도메인 객체, 또는 DTO로 화면에 전달할 또는 화면에서 전달 받은 데이터를 담고 있는 객체 뷰: 데이터를 보여주는 역할. 다양한 형태로 보여줄 수 있다. (HTML, JSON, XML ..) 컨트롤러: 사용자 입력을 받아 모델 객체를 수정하거나, 모델 객체를 뷰에 전달하는 역할 (입력값 검증 포함) MVC 패턴의 장점 동시 다발적 개발이 가능하다 - 프론트 개발자와 백엔드 개발자가 각자 자기 업무를 동시에 진행할 수 있다. 높은 결합도 - 논리적으로 관련있는 기능을 하나의 컨트롤러로 묶거나, 특..

Spring 2020.07.30