분류 전체보기
Git 커밋 메시지 작성법
Git Commit Message 커밋 메시지란? 커밋 메시지 작성 구조(문법) 커밋 메시지 옵션 커밋 메시지를 잘 쓰려고 노력해야 하는 이유 좋은 git 커밋 메시지를 작성하기 위한 7가지 약속 커밋 메시지란? 작업중인 로컬 디렉터리에서 git add를 하게되면 변경된 파일의 목록이 stage에 추가가 된다. 변경된 파일의 목록들을 HEAD(확정본)에 반영을 시킬 때 git commit을 쓰게 된다 commit message는 쉽게 말하면 HEAD에 어떤 변화가 반영이 되었는지 설명하기 위한 글이다 커밋 메시지 작성법 및 유형 헤더에 쓰는 커밋 type들 feat(feature) : 새로운 기능에 추가에 대한 커밋 fix(bug fix) : 버그 수정 관련 커밋 refactor : 코드 리팩토링에 대한..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBPpCD%2FbtrLuBgaIap%2Fwp2Evgki72Jk9aaAtm3K8k%2Fimg.png)
Spring Transation
10분 테코톡 트랜잭션을 보고 정리한 내용입니다. Spring @Transactional 속성들 https://docs.spring.io/spring-framework/docs/4.2.x/spring-framework-reference/html/transaction.html Table 16.3. @Transactional Settings PropertyTypeDescription value String Optional qualifier specifying the transaction manager to be used. * 사용할 PlatformTransactionManager의 식별자 * 트랜잭션 관리자 빈의 이름이나 제한자(qualifier) propagation enum: Propagation Opt..
트랜잭션 매커니즘 - redo, undo, log,
트랜잭션 매커니즘 데이터베이스 시스템은 보통 비휘발성 저장 장치인 디스크에 데이터를 저장하며 전체 데이터베이스의 일부분을 메인 메모리에 유지한다. DBMS는 데이터를 고정 길이의 페이지(page)로 저장하며, 디스크에서 읽거나 쓸 때에 페이지 단위로 입출력이 이루어진다. 메인 메모리에 유지하는 페이지들을 관리하는 모듈을 보통 페이지 버퍼(page buffer) 관리자 또는 버퍼 관리자라고 부르는데, DBMS의 많은 주요 모듈 중에서 매우 중요한 모듈 중의 하나이다. DBMS는 각 제품마다 구조가 다르기는 하지만, 크게 질의 처리기(Query Processor)와 저장 시스템(Storage System)으로 나눠볼 수 있다. 아직 완료되지 않은 트랜잭션이 수정한 페이지들도 디스크에 출력될 수 있으므로, 페..
JPA 프로그래밍 스터디 3장 정리
JAVA ORM 표준 JPA 프로그래밍 - 김영한님 책 스터디 개인 3장 정리 3장 영속성 관리 3.1 엔티티 매니저 팩토리와 엔티티 매니저 3.2 영속성 컨텍스트란 3.3 엔티티의 생명주기 3.4 영속성 컨텍스트의 특징 3.5 플러시 3.6 준영속 3.7 정리 엔티티 매니저 팩토리와 엔티티 매니저 JPA가 제공하는 기능은 크게 2가지로 나눌 수 있다. 엔티티와 테이블을 매핑하는 설계 부분 매핑한 엔티티를 실제 사용하는 부분 엔티티 매니저는 엔티티 관리자이며 개발자는 가상의 데이터베이스 라고 생각하면 된다. 엔티티 매니저가 하는일은 다음과 같다 엔티티 저장 엔티티 수정 엔티티 조회 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. jpa를 사..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHkMs1%2FbtrLiihr7A5%2FuGYyLLFiJGE0st62xg1yb0%2Fimg.png)
Java 동시성 제어 - 멀티스레드, Syncronized, volatile, Atomic
멀티스레드 환경에서의 자바 동시성 제어 기법 멀티스레드 프로세스 환경에서의 자바 동시성 기어 제법 들어가기 전에 프로세스와 쓰레드, 멀티쓰레드부터 뭔지 알아보자. 프로세스 실행중인 프로그램(program)이 메모리에 적재되어 실행되는것 프로세스 내에는 코드 영역, 데이터 영역, 스택 영역, 힙 영역이 존재한다. Code 영역 실행한 프로그램의 코드가 저장되는 메모리 영역 (프로그램 명령어, 소스 코드 자체) Data 영역 프로그램의 전역 변수와 static 변수가 저장되는 메모리 영역( 전역변수, static 변수. 정적 ) Heap 영역 프로그래머가 직접 공간을 할당(malloc)/해제(free) 하는 메모리 영역(new() 등 동적) Stack 영역 함수 호출 시 생성되는 지역 변수와 매개 변수가 저..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCYodr%2FbtrLhQMvGIa%2FLOCZz3OOgBKKxsbkejnj00%2Fimg.png)
동시성 제어, 동시성 이슈
동시성 제어란 동시성 제어(Concurrency Control)란 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 동시에 실행되는 여러 트랜잭션간의 간섭으로 문제가 발생하지 않도록 트랜잭션의 실행순서를 제어하는 기법 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 한다. 동시성 제어(concurrency control)는 가능한 빠른 조회와 동시에 병행되는 동작의 정확한 결과가 발생하는 것을 보증한다. 동시성 제어는 데이터베이스에서 발생하는 작업의 동시 실행을 제어하는 데 필요한 관리 절차. 그러나 동시성 제어에 대해 알기 전에 동시 실행(Conccurent Execution에 대해 알아야 한다. Concurrent Execution in DBMS..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASz8q%2FbtrLounfUJi%2FnGSxp0GnUbaZ2gYJUjDnI0%2Fimg.png)
클린 아키텍처 2부.
클린아키텍처를 스터디하면서 책의 내용, 토론한 내용, 개인 생각을 정리한 글입니다. 2부 3장, 4장, 5장, 6장 3장 패러다임 개요 패러다임 : 프로그래밍을 하는 방법 언어네는 독립적이며 어떤 프로그래밍 구조를 사용할 지, 언제 이 구조를 사용할 지 결정한다. 현재까지의 프로그래밍 패러다임에는 3가지 종류가 있다. 이 3가지 외의 패러다임은 현재까지는 존재하지 않는다 1. 구조적 프로그래밍 최초로 적용된 패러다임(하지만 최초로 만들어진 패러다임은 아니다). 1968년 네덜란드의 에르허츠 비버 데이크스트라 가 발견했다. 무분별한 점프문(goto문)은 구조에 해롭고 이걸 if / then / else / do / while /until과 같이 더 익숙한 구조로 대체했다 구조적 프로그래밍은 제어흐름의 직접..
데이터베이스 락 (Database Lock, DB Lock)
우아한 테크코스의 10분 테코톡을 정리한 글입니다 정의 Recored locking is the technique of preventing simultaneous access to data in a database, to prevent inconsistent results. DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화 장치 Lock : 무엇인가 열리지 않도록 막는 장치 Lock이란? DB에서는 Lock을 사용해 레코드(로우), 테이블, 테이블 전체의 접근을 막을 수 있다 위 그림은 하나의 DB에 두 유저가 동시에 접근하는 것을 그린 예제 account는 계좌인데, 마이너스 통장이 아니다. 마이너스 통장이 아니면 계좌는 0원 밑으로 떨어지면 안된다. 두명이 계좌에..
JPA 프로그래밍 스터디 1장,2장
JAVA ORM 표준 JPA 프로그래밍 - 김영한님 책 스터디 개인 1장 2장 정리 JPA JPA는 Java Persistence API의 줄임말로서, ORM(Object-Relational Mapping, 객체-관계형 매핑) 프레임 워크이다. JPA는 자바 진영의 ORM 기술 표준이다 JPA는 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이며, 이 인터페이스를 구현한 구현체가 우리가 흔히 사용하는 하이버네이트(hibernate)이다. 또한 JPA 인터페이스를 구현한 구현체는 OpenJPA, EclipseLink, ToLink 등과 같은 구현체가 있다. JPA는 특정 기능을 하는 라이브러리가 아니고, 자바 어플리케이션에서 관계형 데이터 베이스를 어떻게 사용해야 하는지 정의하..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPj5eb%2FbtrK1h3ZlsN%2FKyhhkiP67LonMQa7lrAOgK%2Fimg.png)
정규표현식
정규표현식(Regular Expression) 정규표현식(Regular Expression) 줄여서 Regex 라고 표현 특정한 규칙을 가진 무자열의 집합을 표혀낳는 사용하는 형식 언어 문자열에서 특정 패턴을찾거나 존재하는지, 또는 검증할 때 사용 정규 표현식의 각 문자(즉, 패턴을 기술하는 문자열 안의 각 문자)는 메타문자(특별한 의미로)로 이해되거나 정규 문자('문자 그대로', 즉 '리터럴'의 의미로)로 이해된다 정규식 a. a는 단지 'a'와 일치하는 리터럴 문자이며 .는 새 줄을 제외한 모든 문자와 일치시키는 메타 문자이다 Java에서의 정규표현식 java.util.regex 패키지에 있는 클래스들을 사용한다. Pattern클래스 - 패턴 정의(검색에 사용됨) Matcher클래스 - 패턴 검색에 ..