본문 바로가기

JPA 그리고 ORM 이란? 그동안 개발을 하면서 MyBatis를 주로 사용해왔다. 그러던 중JPA란 무시무시한 놈과 마주하게 되었다. JPA란? Java Persitence API(자바영속성API)로 자바의 ORM 표준기술이다. 기본적으로 Application과 JDBC사이에서 동작한다. 그렇다면 ORM은 무엇일까? ORMObject-Relational Mapping이란 이름 그대로 객체와 관계형 DB를 매핑해주는 것이다. ORM은 객체와 테이블을 매핑하기 때문에 SQL쿼리를 직접 날리는 것이 아니라 마치 자바에서 라이브러리 사용하듯이 사용하면 된다. orm은 다음 과 같은 일을 해준다.- Entity 분석- 쿼리 생성- JDBC API 사용- Result Set 매핑- 패러다임 불일치 해결 JPA를 사용해야하는 이유1. 생산성 .. 더보기
스프링 async 비동기처리 스프링 에서 비동기(Async) 사용 일반적으로 사용하는 다음과 같은 컨트롤러 코드는 동기화를 기본으로한다. 하지만 이와 같이 동기화를 하면 어떠한 api에 많은 Request가 들어오거나, 메일서비스같이 오래걸리는 api라면 스레드대기상태가 걸린다. 스레드를 할당 받지 못하는경우도 생길 수 있다. 그렇다면 어떻게 해야하는가!! 해결법 비동기! 비동기란 일반적으로 어떠한 처리를 동기화 하지않고 동시에 여러곳에서 처리하는 것을 말하는데 일반적으로 다음과 같이 움직인다. - 어떠한 요청이 있을때 바로 리턴값을 받는데 이것을 결과 값이 아니다. 모든 처리가 끝난 후 결과값을 간접적으로 받는다. - 요청별로 별도의 스레드를 통해 처리한다. 약간 요런느낌?? 그리고... 스프링 3.2 부터 비동기를 지원하는 라이.. 더보기
val? var? val ? var ?스칼라를 처음 시작하면 기본적으로 val 또는 var을 사용하게 될 것이다. 이것은 무엇일까? 사실 자바스크립트 같은 언어에서는 이미 사용중인 타입이다.그렇다 변수가 선언 될 때 타입을 지정해주는 타입이다. 그렇다면 두개의 차이는 무엇일까?val은 "immutable"로 처음에 지정하면 getter 만 가지고 있어서 변경 or 재할당이 불가능한 타입이다. var는 getter/setter를 모두 생성 시켜 변경이 가능한 타입이다. val a = 5 var b =6 a = 6 (x) 불가능 b = 7(0) 가능 immutable이란 무엇일까? immutable이란 변경이 불가능한 객체를 말한다. 사실 자바에도 String 이나 boolen등의 immutable이라는 개념이 있지만 재할당.. 더보기