분류 전체보기

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를 제공한다...
목표 스프링을 사용하는 이유에 대해 설명할 수 있다. 스프링 어플리케이션 컨텍스트, IoC, DI 장단점을 설명할 수 있다.. 스프링 빈의 생명주기와 콜백을 설명할 수 있다. Q. Spring을 사용하지 않고 서버를 개발하면 어떻게 될까? - 미들웨어에 종속적인 환경이된다. - 배포할때 많은 양의 XML을 작성해야 한다. - 엔터프라이즈이기때문에 비용 문제도 있다. - 불필요하게 EJB 객체를 상속받아야 한다. 더보기 Java로 서버를 만들기 위해서는 J2EE의 서블릿 및 JSP를 이용한다. J2EE는 실제 사용하는데 불편함이 많았다. - ORM 기능 중 order by를 미제공 => 미들웨어 제품에서 직접 구현 => 미들웨어에 종속적인 환경이된다. - 배포할때 많은 양의 XML를 작성 - 엔터프라이즈이..
어느 덧 서버개발 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..
NoSQL은 대규모 클러스터에서 데이터베이스를 실행하기에 적합하다. 집합은 분산의 자연스러운 단위로 사용할 수 있으므로 수평 확장(여러 서버의 클러스터에서 실행하는 방법)과 잘 맞는다. 데이터 분산 방법 - 복제(replication) : 같은 데이터를 복사해 여러 노드에 분산 - 마스터-슬레이브(master-slave) - 피어-투-피어(peer-to-peer) - 샤딩(sharding) : 각 노드마다 다른 데이터 복제와 샤딩은 서로 직교하는 기법으로, 둘 중 하나만 사용해도 되고 둘 다 사용해도 된다. 요점 - 데이터를 분산하는 형식에는 샤딩과 복제 두 가지가 있다. - 샤딩 : 여러 서버에 데이터를 나눔. 같은 데이터는 한 서버에서만 찾을 수 있음. - 복제 : 여러 서버에 데이터를 복제. 같은 ..
요점 - 집합 지향 데이터베이스에서는 집합 내 관계보다 집합 간 관계를 처리하는 것이 더 어렵다. - 그래프 데이터베이스는 데이터를 노드와 간선의 그래프 구조로 만들며, 복잡한 관계를 가지는 데이터에 최적이다. - 무스키마 데이터베이스는 레코드에 필드를 자유롭게 추가할 수 있지만, 보통 데이터 사용자가 기대하는 암묵적 스키마가 있다. - 집합 지향 데이터베이스는 주요 집합과 구조가 다른 데이터 제공을 위해 구체화 뷰를 사용한다. 구체화 뷰를 만드는 작업은 보통 맵-리듀스 계산을 통해 수행된다. 3.1 관계 집합은 함께 접근하는 데이터를 한 덩어리로 모아놓기 때문에 유용 하지만, 관련 데이터에 다르게 접근하는 경우도 많음 ex) 고객과 주문의 관계 고객 정보에 접근할 때마다 그 고객의 주문 내역까지 함께 ..
데이터 모델 : 데이터를 인식하고 조작하는 데 사용되는 모델 지난 20여 년간 가장 지배적인 데이터 모델은 관계형 데이터 모델 각 테이블은 행을 가지며, 각 행은 관심을 가지는 어떤 개체(entity)를 표현. 이 개체는 여러 개의 칼럼으로 기술, 각 칼럼은 하나의 값을 가질 수 있다. 칼럼은 같은 테이블이나 다른 테이블에 있는 행을 참조할 수 있는데, 이를 통해 개체 간 관계가 설정된다. NoSQL을 사용할 때 가장 명확한 변화는 관계형 모델로부터 멀어진다. NoSQL 솔루션은 각각 다른 모델을 사용한다. - Key-Value(키-값) - 문서 - 칼럼 패밀리 - 그래프 그래프를 제외하고는 집합 지향(aggregate orientation)이라는 특징을 공유한다. 요약 - 세 가지 형태의 집합 지향 데..
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의 예시인 카산드..
돌비돌비돌비
'분류 전체보기' 카테고리의 글 목록