목록백엔드/Java (3)
윤개발
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/caea5V/btra10CXux9/5n9tKonm8kXP6SZF2lGqiK/img.png)
아키텍처 아키텍처를 설계할 때 출현하는 전형적인 영역은 그림과 같은 4가지 영역 표현, 응용, 도메인, 인프라입니다. - 표현 계층은 흔히 Controller로 불립니다. 어플리케이션의 최상단에서 유저 또는 웹 요청을 받고 응용계층에 로직을 위임하고 적절한 응답을 합니다. - 응용 계층은 Service로 많이 불리는데 처리해야할 로직을 중재하는 역할을 합니다. 원래는 응용계층에서 대부분의 로직 처리가 이루어졌으나 도메인 중심 개발에서는 도메인에게 로직 수행을 위임합니다. - 도메인 모델은 일종의 객체이며 핵심 로직을 수행합니다. 또한 도메인은 식별자 값을 가진 엔티티로써 데이터베이스에 매핑됩니다. 응용 계층에서 도메인에게 메시지를 전달(메서드를 호출)하고 도메인은 해당 메시지를 적절한 행동을 실행합니다...
Java를 처음 접할때 배우는 메소드임에도 잘 모르고 쓰는 경우가 많은 Equals와 Hashcode에 대해서 알아보자. 두 메소드는 모든 객체의 부모인 Object 클래스에 구현되어있다. Objcect의 구현된 소스코드를 살펴보자. // Indicates whether some other object is "equal to" this one. public boolean equals(Object obj) { return (this == obj); } Object 클래스에 구현된 equals 클래스이다. 생각보다 코드가 단순하고 객체 자체가 같은지를 비교하는 코드이다. 다음은 hashcode이다. hashcode는 따로 작성된 코드가 없이 native라는 코드가 붙어있다. /** * Returns a ha..
Garbage Collection란? Java에서는 메모리 관리를 명시적으로 해제하지 않고 Garbage Collection(이하 GC)가 자동으로 수행한다. JVM이 GC를 실행할 때 GC를 실행하는 스레드를 제외한 모든 스레드를 중단하는데 이를 stop-the-world 라고한다. stop-the-world가 일어나면 다른 스레드가 실행되지 않기 때문에 GC를 튜닝한다는 것은 stop-the-world 시간을 최소화하는데에 있다. GC는 더이상 필요없는 객체(쓰레기)를 정리하는데 GC는 2가지의 가정하에 만들어졌다. - 대부분의 객체는 금방 접근 불가능한 객체가 된다. - 오래된 객체(생성된지 오래된)에서 젊은 객체(생성된지 얼마되지 않은)로의 참조는 거의 일어나지 않는다. 이러한 가설을 'weak ..