CS

· CS
계층 구조 계층화된 아키텍처(layered architecture) 또는 n-tier 아키텍처 패턴 이라고도 하며 소규모 응용 프로그램인 경우엔 3개의 계층만 있을 수 있고, 반면 대규모인 경우 5개 이상의 계층이 포함될 수 있다 대부분의 Java EE 애플리케이션에 대한 표준으로 알려져 있다 패턴 계층 내 구성 요소는 수평관계이며 각 계층에는 애플리케이션 내에서 역할과 책임을 담당하고 있다 Presentation Layer 모든 사용자 인터페이스와 브라우저 통신 로직을 처리하는 계층 사용자 데이터를 어떻게 얻어야 하는지 알 필요가 없음 특정 형식으로 화면에 해당 정보를 표시하기만 하면 되는 계층 View, Controller Business Layer 요청(request)과 관련된 특정 비즈니스 규칙을..
· CS
Thread란? 프로세스의 일부인 실행 단위이다 스케줄러가 독립적으로 관리할 수 있는 가벼운 프로세스 기본적으로 대규모 프로세스의 하위 부분들이다 하나의 프로그램은 하나의 스레드를 가지고 있다 실행을 예약할 수 있는 프로세스 내의 엔티티(Entity, 실제 객체)이다 스레드는 자신이 속한 프로세스 내에서 피어 메모리, 데이터 등 리소스를 공유한다 스레드의 상태는 실행중, 준비됨, 차단됨 세가지 상태가 있다 프로세스는 모두 동시에 실행되는 여러 스레드를 가질 수 있다 세 가지 방법으로 스레드 구현을 할 수 있다 커널 레벨 스레드(Kernel-level threads, 1:1) 운영체제가 지원하는 스레드 기능으로 구현됨, 커널이 스레드의 생성 및 스케줄링 등을 관리다만 사용자 스레드에 비해 생성 및 관리하는..
· CS
프로그램이 컴파일 타임에 확인되지 않은 경고를 발생시키는 일부 작업을 수행하려고 하는 경우에 힙 오염이 발생한다 런타임 시 힙에 예기치 않은 유형의 개체가 존재하는 것으로 오류가 나타나는 상황이다 특히 매개변수화된 타입의 변수에 올바른 매개변수화된 타입이 아닌 값이 할당될 때, 원시 타입과 매개변수화된 타입을 혼합하거나 확인되지 않은 캐스팅을 진행하는 경우가 있다 예시 코드를 보자 public class HeapPollution { public static void addToList (List listArg, T... elements) { for (T x : elements) { listArg.add(x); } } public static void faultyMethod(List... l) { Objec..
· CS
이전 가비지컬렉터 게시물에서 JVM에서의 새 객체가 할당은 eden영역에서 이루어진다고 했었다 HotSpot VM에서는 빠른 메모리 할당을 위해 Bump-the-pointer와 TLAB을 같이 사용중인데 먼저 Bump-the-pointer는 eden에 할당된 마지막 객체를 추적한다 마지막 객체는 eden 영역의 맨 위에 위치해 있으며 그 다음 생성되는 객체를 할당하기 위해선 해당 객체의 크기가 eden영역에 넣기 적당한지만 확인한다 이때 크기가 적당하다고 판단되면 eden에 들어가고 새로 생성된 객체가 맨 위에 위치하게 된다 그러므로 새 객체 생성시 마지막으로 추가된 객체만 점검하면 되므로 매우 빠르게 메모리 할당이 가능해진다 하지만 eden은 스레드 간에 공유되는 메모리 공간인 멀티 스레드 환경이라서 ..
naellu
'CS' 카테고리의 글 목록