https://leetcode.com/problems/course-schedule/description/There are a total of numCourses courses you have to take, labeled from 0 to numCourses - 1. You are given an array prerequisites where prerequisites[i] = [ai, bi] indicates that you must take course bi first if you want to take course ai.For example, the pair [0, 1], indicates that to take course 0 you have to first take course 1.Return t..
프로그래밍

목표 JDBC 및 JPA를 사용하는 이유에 대해 설명할 수 있다. 단순히 ORM의 기능을 넘어서 영속성 컨텍스트를 이용하는 장점(1차 캐시, 지연 로딩, 쓰기 지연 등) Transactional 등의 부가 기능들도 잘 설명할 수 있다. 잘못 사용하는 경우의 영향력과 해결 방법에 대해 설명할 수 있다. JAVA 진영의 JPA와 Spring 진영의 JPA가 어떻게 구현되어 있는지 설명할 수 있다. JDBC, JPA, Hibernate, JPA, Spring Data JPA의 차이를 설명할 수 있다. Kolin으로 Spring JPA를 사용할때 주의점 1. JDBC란? (From Oracle) Java Database Connectivity의 약자로서 자바의 Universal Data Access를 제공한다...
어느 덧 서버개발 5년차가 되었지만, 숱한 물음표에 대해 마침표를 찍기가 너무 어려웠다. 또한 하나의 책에 대해 기억에 남는 부분이 무엇이냐라고 했을때 당당히 답하기 힘들었다. 가장 익숙한 스프링 환경에서 극복하고자 한다. - Spring은 무엇인가요? - Spring 을 왜 쓰시나요? - Spring 을 썼을때 장점과 단점은 무엇인가요? - Spring 을 사용함으로써 어떤 점이 편해졌나요? - Spring Boot는 무엇인가요? - Spring Webflux는 무엇인가요? - MVC와 비교하면? - JDBC를 사용하는 것과 JPA를 사용하는 것은 무슨 차이가 있을까요? - MVC, WebFlux가 각각 유저의 요청이 들어온 순간 부터 응답되기까지의 과정을 말해주세요. - Spring Bean의 라이프..
MySQL InnoDB Locking - Shared Lock (S) : 읽기 락 - row-level - Shared Lock이 걸린 동안 다른 트랜잭션이 해당 row에 대해 X락 획득 불가능하고 대기 - 여러 트랜잭션이 동시에 S락 획득 가능 - SELECT ... FOR SHARE - Exclusive Lock (X) : 읽기, 수정, 삭제 락 - row-level - Exclusive Lock이 걸려있으면 다른 트랜잭션이 해당 row에 대해 X, S락 획득 불가능하고 대기 - SELECT ... FOR UPDATE, UPDATE, DELETE - Intension Lock : 어떤 트랜잭션이 다른 트랜잭션에게 row에 lock걸 예정임을 알려주는 용도 - table-level, multiple g..
1장. 왜 NoSQL인가? 요점 - 관계형 데이터베이스는 20년 이상 성공적인 기술이고 지속성, 동시성 제어, 통합 메커니즘을 제공한다. - 애플리케이션 개발자는 관계형 모델과 메모리 내 데이터 구조 간의 객체-관계 불일치로 불만이 많다. - 데이터베이스를 통합점으로 사용하는 방식에서 데이터베이스를 애플리케이션 안에 캡슐화하고 서비스를 통해 통합하는 방식으로 이동하려는 움직임이 있다. - 데이터 저장소 변화의 중요 요인은 클러스터에서 실행되는 엄청난 양의 데이터를 지원해야 한다는 점이었다. 관계형 데이터베이스는 클러스터에서 효율적으로 동작하도록 설계되지 않았다. - NoSQL은 우여한 신조어다. 규정된 정의도 없다. 공통 특징을 살펴볼 수밖에 없다. - NoSQL의 공통 특징은 다음과 같다. - 관계형 ..

1부(1장 ~ 7장) : NoSQL 핵심 개념, RBDMS와 다른 점 2부(8장 ~ 15장) : NoSQL을 이용한 시스템 구현 1장 : NoSQL이 빠르게 각광받게 된 배경 2장 : NoSQL 세상의 주요 모델 설명 (키-값 모델, 문서 데이터 모델, 칼럼 패밀리) 3장 : 집합 구조의 단점 : 다른 집합 구조에 속하는 엔터티, 그래프 데이터베이스 4장 : 분산 : 복제(마스터 슬레이브, 피어 투 피어), 샤딩, 일관성 문제 5장 : 일과넝 업데이트, 읽기, 정족수의 역할, 지속성, CAP정리 6장 : 변경 추적, 비일관성 제거를 위한 버전 스탬프 7장 : 병렬 계산, 맵-리듀스 8장 : 키-값 DB의 예시인 리악 사용 9장 : 문서 DB의 예시인 몽고 DB 10장 : 칼럼 패밀리 DB의 예시인 카산드..

2장 마이크로서비스 아키텍처를 구축할 때 프로젝트의 아키텍트는 다음 세 가지 일에 집중한다. 1. 비즈니스문제의 분해 2. 서비스 세분화의 확정 3. 서비스 인터페이스의 정의 1. 비즈니스 문제를 기술하고 그 문제를 기술하는 데 人居된 명사에 주목하라 문제를 기술하는 데 동일한 명사가 반복해서 사용되면 대개 핵심 비즈니스 영역과 마이크로서 비스로 만들 기회가 드러난다. 1장에서 EagleEye 영역의 대상 명사는 계약과 라이선스, 자산 같은 것이다. 2. 동사에주목하라 동사는 행위를 부각하고 문제가 되는 영역의 윤곽을 자연스럽게 드러낸다. 여러분이 “트랜잭 션 X 는 A와 B 에서 데 이 테 ■ 가져와야 해 .”라고 말한다면 대개 여러 서비스가 엮여 동작 중인 상태다. EagleEye에 동사 관찰 방법을..

1-1. 마이크로 서비스란? 모놀리식 아키텍처 (monolithic architecture) : 배포 가능한 단 일 소프트웨어 산출물 UI 및 비즈니스 로직,데이터베이스 액세스 로직 모두가 하나의 애플리케이션 산출물로 패키징되고 애플리케이션 서버에 배포 마이크로서비스 아키텍처 대형 애플리케이션을 관리하기 쉽고 제한된 책임을 담당하는 컴포넌트로 분해 HTTP와 JSON(JavaScript Object Notation) 같은 경량 통신 프로토콜 사용 1-2. 스프링이란 무엇이고 마이크로서비스와 어떤 관련이 있을까? Java EE의 단점 EJB(Enterprise Java Beans) Container 기반의의 Java EE 개발은 제공하는 API를 상속 받아야만 했고 부가적인 코드를 작성해야 하는 등의 불편..

- 스프링 마이크로서비스 코딩 공작소 • 1장에서는 마이크로서비스 아키텍처가 애플리케이션,특히 클라우드 기반 애플리케이션을 구축하는 데 중요하고 적절한 접근 방법인 이유를 설명한다. • 2장에서는 스프링 부트를 사용해 첫 번째 REST 기반 마이크로서비스를 작성하는 방법을 살펴본다. 이 장에서는 아키텍트와 애플리케이션 엔지니어, 데브옵스(DevOps) 엔지니어 관 점에서 어떻게 마이크로서비스를 바리볼 것인지 설명한다. • 3장에서는 스프링 클라우드 컨피그(Spring Cloud Config)를 사용한 마이크로서비스의 구성 (configurarion)을 관리하는 방법을 소개한다. 스프링 클라우드 컨피그는 단일 저장소에 구성 정 보를 중앙 집중화하고 버전 관리해서 모든 서비스 인스턴스에 반복 가능하게 구성할..
2.1 서블릿 시작하기 서블릿 : JVM 기반에서 웹 개발을 하기 위한 명세이자 API다. Java EE에 포함된 스펙 중의 하나로 자바에서 HTTP 요청과 응답을 처리하기 위한 내용들을 담고 있다. 자바를 실행하려면 JRE가 필요-> 서블릿을 실행하려면 웹 애플리케이션 컨테이너가 필요 2.1.1. 서블릿 설정 그래들을 사용할 예정. InitServlet.java import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @WebServlet("/init") public class InitServlet extends HttpServlet{ @Ove..