RESTful & REST API

REST란? REpresentational State Transfer, Roy Fielding 월드 와이드 웹(World Wide Web a.k.a WWW)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반에 대한 패턴 REST가 디자인 패턴이다, 아키텍처다 많은 이야기가 존재하는데, 하나의 아키텍처로 볼 수 있다. 좀 더 정확한 표현으로 말하자면, REST 는 Resource Oriented Architecture 이다. …
RESTful & REST API 더보기

@Transactional과 AOP 트랜잭션의 차이점

@Transactional 특별한 설정 없이 쉽게 사용 가능 원하는 곳에만 트랜잭션을 설정해 성능에 대한 영향을 최소화 할 수 있다. Annotation이 누락되거나 여러 메소드에 걸쳐 사용될 경우 트랜잭션이 누락될 수 있다. 외부 라이브러리에 대해서는 사용이 불가능하다. AOP 트랜잭션 공통으로 트랜잭션이 적용되기 때문에 트랜잭션이 누락될 일이 없다. 외부 라이브러리에 적용 가능하다. 트랜잭션이 필요없는 곳까지 적용된다. → 필터를 잘 …
@Transactional과 AOP 트랜잭션의 차이점 더보기

Reflection; 훑어보기

리플렉션(Reflection)이란? 자바에서 제공하는 리플렉션(Reflection)은 C, C++과 같은 언어를 비롯한 다른 언어에서는 볼 수 없는 기능입니다. 이미 로딩이 완료된 클래스에서 또 다른 클래스를 동적으로 로딩(Dynamic Loading)하여 생성자(Constructor), 멤버 필드(Member Variables) 그리고 멤버 메서드(Member Method) 등을 사용할 수 있도록 합니다. 그러니까, 컴파일 시간(Compile Time)이 아니라 실행 시간(Run Time)에 동적으로 특정 클래스의 정보를 객체화를 통해 분석 및 추출해낼 …
Reflection; 훑어보기 더보기

Database transaction

Transaction 트랜잭션의 개념 데이터베이스는 다수의 사용자가 동시에 사용하더라도 항상 모순이 없는 정확한 데이터를 유지해야 한다. 장애 상황에서 마찬가지다. DBMS는 데이터가 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데 그 중에 하나가 트랜잭션이다. 트랜잭션은 한 작업을 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것으로 데이터베이스에서 논리적인 작업의 단위가 된다. 장애 발생시 복구하는 작업의 단위도 된다. 트랜젝션의 …
Database transaction 더보기

Database normalization

Normalization 정규화는 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다. 잘못 설계된 데이터베이스는 이상현상이 발생할 수 있다. 이상 현상 Insertion anomaly 삽입 이상 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 위 릴레이션에서 새로운 tuple을 삽입하려면 이벤트번호과 당첨여부까지 삽입해야 하는 이상현상. 갱신 이상 중복 tuple 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 …
Database normalization 더보기

2차 중간점검

1) 안건 스프링부트 더딘 것에 관하여 ‘스프링 부트 시작하기’ 가이드 git flow : 브랜치 관리 전략 2) 여러가지를 다 같이 진행하는 것은 어떤가요? 사실 부트 안본지 일주일 넘었다가 어제 귀찮은거 참고 간신히 함 → 그동안 DB? → DB도 하고 자료구조도 좀 보고, 부트를 안했다고 다른걸 안한건 아니지만 여러가지를 다 할 수 없을까? 느리다기보단 다른것에 몰두해서 그런거 …
2차 중간점검 더보기

Spring Web; MVC

MVC패턴 Model : 어플리케이션의 정보, 데이터를 의미한다. View : 사용자 인터페이스, 사용자가 보고 사용하는 화면을 의미한다. Controller : 모델과 뷰의 중계 역할. 사용자의 요청을 파악하고 그에 맞는 결과를 응답한다. 스프링 웹 MVC의 구조 요청당 컨트롤러에 매핑되는 서블릿이 각각 존재했다. 중복코드를 방지하고 일관된 관리를 위해 프론트 컨트롤러가 생겼다. Front controller : 프론트 컨트롤러는 컨트롤러 앞에 존재하는 …
Spring Web; MVC 더보기

ERD and relation model conversion

데이터베이스 설계는 사용자들의 요구사항을 고려하여 데이터베이스를 생성하는 과정이다. 데이터베이스에 실제로 데이터가 저장되기 시작하면 구조를 변경하기 매우 어렵다. 저장된 데이터와 설계된 구조를 모두 지우고 데이터베이스 scheme을 재작성 해야하는 것은 물론, 어플리케이션에서 데이터베이스에 접근하는 코드 역시 수정이 필요하기 때문이다. 많은 라이브에서 데이터베이스에서 계속 사용중이기 때문에 일관성과 무결성을 지키며 무중단으로 migration 하는 것은 어렵다. RDB모델을 기반으로 두고 데이터베이스를 …
ERD and relation model conversion 더보기

Relation Data Model

Relation Data model 릴레이션의 예시 Attribute 속성 : 각 데이터를 의미하는 이름 Tuple 투플 : entity instance, record. Domain 도메인 : 속성의 타입을 의미한다. 예를들어 age는 int로 정의할 수 있다. Null Degree 차수 : attribute의 갯수 여기서는 7개다 Cardinality 카디널리티 : tuple(entity instance)의 갯수 Relation의 특징 Tuple의 유일성 : 하나의 relation에는 동일한 tuple이 존재 할 …
Relation Data Model 더보기