본문 바로가기

전체보기

(113)
JPA 공부 - 2 2021/01/18 - [IT/데이터베이스] - JPA 공부 - 1 JPA 공부 - 1 2021/01/17 - [IT/데이터베이스] - JPA 공부 - 0 1. JAP 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 저장소 JDBC API 를 사용해서 SQL을 데이터 demoversion.tistory.com 2. JPA 시작 2.1 이클립스 설치와 프로젝트 불러오기 예제 경로 https://github.com/holyeye/jpabook 2.2 H2 데이터베이스 설치 다운로드 경로 : https://www.h2database.com/ 2.3 라이브러리와 프로젝트 구조 위 3개 챕터는 설정이라 넘어감 2.4 객체 매핑 시작 회원 테이블 CREA..
JPA 공부 - 1 2021/01/17 - [IT/데이터베이스] - JPA 공부 - 0 1. JAP 소개 1.1 SQL을 직접 다룰 때 발생하는 문제점 관계형 데이터베이스는 가장 대중적이고 신뢰할 만한 안전한 저장소 JDBC API 를 사용해서 SQL을 데이터베이스에 전달 1.1.1 반복 예를들어 회원 관리 기능을 개발해 보자 회원 관리용 객체 생성 및 회원용 DAO 생성 // 회원 객체 public class Member { private String memberId; private String name; ... } // 회원용 DAO public class MemberDAO { public Member find (String memberId) {...} } 회원 조회용 기능 개발 회원 조회용 SQL 작성 SELECT M..
JPA 공부 - 0 2021/01/18 - [IT/데이터베이스] - JPA 공부 - 1 2021/01/21 - [IT/데이터베이스] - JPA 공부 - 2 2021/02/25 - [IT/데이터베이스] - JPA 공부 - 3 2021/01/29 - [IT/데이터베이스] - JPA 공부 - 4 2021/02/07 - [IT/데이터베이스] - JPA 공부 - 5 2021/02/25 - [IT/데이터베이스] - JPA 공부 - 6 JPA SYUDY 참고 서적 : 자바 ORM 표준 JPA 프로그래밍 학습 방식 책 정리 예제 코드 실습 PLAN (책 목차에 따라 진행) JPA 소개 (1주차) JPA 시작 (2주차) 영속성 관리 (3주차) 엔티티 매핑 (4주차) 연관관계 매핑 기초 (5주차) 다양한 연관관계 매핑(6주차) 고급 매핑 상..
백업과 복구 백업과 복구 지속성과 성능이 양립하는 구조 DBMS의 3가지 구조 트랜잭션에는 지속성이라는 성질이 있음 시스템 장애에도 지속성을 유지할 수 있어야함 DBMS 에서는 지속성과 성능이 양립할 수 있도록 하고 있음 로그선행 쓰기(WAL) 데이터 파일 변경을 직접 수행하지 않고 로그를 먼저 변경하고 변경사항을 기록한 로드 레코드를 써서 동기화 하는 구조 MySQL에서는 이 로그를 InnoDB 로그로 부름 WAL 의 장점 디스크에서 연속해서 쓰기 때문에 무작위로 쓰는 것보다 성능이 좋다. 트랜잭션이 발생하게 되면 이를 모두 Sequential 한 Log 형태로 보관 디스크에 쓰는용량과 횟수를 줄일 수 있다. Sequential 형태로 데이터를 나열하게 되면 특별한 연산이 필요가 없고 디스크 헤더 움직이도 적기 때..
트랜잭션과 동시성 제어 트랜잭션과 동시성 제어 트랜잭션이란? 갱신은 단일 쿼리가 아닌 복수 쿼리를 연속적으로 수행하는 경우가 대부분 또한 갱신 전에 조회를 포함해서 사용하는일이 많음 이러한 쿼리들을 한 덩어리로 포함하여 다뤄야 함 → 이런 복수 쿼리를 한 단위로 묶은 것 원자성 데이터의 변경을 수반하는 일련의 데이터 조작이 전부 성공할지, 전부 실패할지를 보증하는 구조 예를 들어 A, B, C 작업이 순차적으로 있을 경우 A → B → C 가 하일련의 데이터 조작으로 묶임 그리고 A, B, C 중 하나라도 실패할 경우 전부 롤백 A, B, C 를 하나의 원자 단위로 보는 관점 일관성 기존의 데이터 베이스가 데이터 조작 전후에 그 상태를 유지하는 것을 보증 이를 위해 데이터베이스에서는 오브젝트에 대해 각종 정합성 제약을 추가할 ..
데이터베이스와 아키텍쳐 구성 데이터베이스와 아키텍쳐 구성 DB 서버의 다중화 - 클러스터링 클러스터링이 어려운 컴포넌트로 인식 데이터를 보존하는 '영속 계층' 이기 때문 '데이터의 정합성이 중요하기 때문' 가장 기본적인 다중화 DB 서버 N, 저장소 1 Active-Active : 클러스터를 구성하는 컴포넌트를 동시에 가동 Active-Standby : 클러스터를 구성하는 컴포넌트 중 실제 가동하는 것은 Active, 남은 것은 대기하고 있는다. Active-Active 구성의 장단점 시스템이 다운되어 있는 시간이 짧다 복수의 DB 서버가 동시에 작동하고 있어서 한 대가 다운되어 동작 불능이 되어도 남은 서버가 처리를 계속하기 떄문에 시스템 전체가 정지하는 것을 방지할 수 있음 성능이 좋다 동시에 가동하..
2020년 한 해를 되돌아보며... 0. TL;DR 이번 한 해는 나는 큰 변화가 없었지만, 외부 환경은 코로나라는 이슈로 떠들썩했던 한 해였다. 조금은 안일했던 한 해였던 것 같다. 오히려 내가 더 노력했어야 했고, 내면을 더 채워야 했던 한 해였던 것 같다. 내년에는 긴장할 수 있는 해로 거듭나 보자 1. 외부적 환경 1.1. 회사 큰 변화는 없었다. 이 말이 긍정적일 수도 있고 부정적일 수도 있는 말인 것 같다. 한마디로 파도가 없었던 한 해였다. 긍정적인 측면에서 본다면 회사에서 1년을 조용하게 보냈고, 다른 사람들 하는것만큼 공부하고 놀고 일하고 먹고 자고 했다는 뜻일 수 있다. 그렇지만 이 말을 뒤집어 본다면 조금은 경각심을 가지게 된다. 조용하게 1년을 보냈다는 말은 손가락을 튕기며 떠올릴 만한 성과는 없었다는 말이고, 다른 ..
구글 한국 공휴일 캘린더 url https://calendar.google.com/calendar/embed?src=ko.south_korea%23holiday%40group.v.calendar.google.com&ctz=Asia%2FSeoul 대한민국의 휴일 calendar.google.com https://p03-calendars.icloud.com/holidays/kr_ko.ics
DispatcherServlet 기본 동작 1. DispatcherServlet 기본 동작 get http://localhost:8080/app/hello DispatcherServlet.java doService @Override protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception { logRequest(request); ... doDispatch 로 진입 멀티파트 요청(파일 업로드) 인지 확인 핸들러를 찾아오는 부분 : 해당 요청을 처리하는 핸들러를 찾아오는 부분 (대부분 전략 패턴을 통해 가지고 옴) DispatcherServlet이 들고 있는 여러개의 핸들러 맵핑중 RequestMappingHandlerMappin..
Java Garbage Collection Java Garbage Collection NAVER D2 1. 가비지 컬렉션 과정 - Generational Garbage Collection 1.1. 'stop-the-world' GC를 실행하기 위해 JV 이 어플리케이션 실행을 멈추는 것 GC를 수행하는 쓰레드를 제외한 모든 쓰레드는 작업을 멈춤 GC튜닝이란 stop-the-world 를 줄이는 것이다. 1.2. 명시적 해제 명시적으로 해제하려고 null을 할당하거나 System.gc()를 호출하는 경우도 있음 → System.gc()는 성능에 매우 큰 영향을 끼친다.(아마도 gc를 하면 stw 가 발생하여서 그런 것 같다.) 1.3. 두 가지 가설에 기반한 가비지 컬렉션 대부분의 객체는 금방 접근 불가능 상태가 된다. 왜??? 왜 이런 가설이? ..