- collection-복사BE_규원방어적 복사객체의 복사본을 만들어서 반환하는 방법이며복사본을 수정해도 원본이 수정되지 않아야 한다 얕은 복사복사본을 만들 때, 새로운 객체를 만들고 원본의 주소 값을 참조하는 방법이며원본과 복사본은 동일한 주소 값을 가리키고 있다 깊은 복사복사본을 만들 때, 새로운 객체를 만들고 모든 값을 복사해오는 방법이며원본과 복사본은 서로 다른 객체를 가리키며 서로 동일한 값을 가지고 있다복사 방법 5 가지원본 collection 그대로 getter 를 통해 반환하기new 를 통해 새로운 Collection 생성해 반환하기Collection.unmodifiableList() 를 통해 Collection 반환하기List.copyOf() 를 통해 Collection 반환하기복사 생성자 + Collections.unmo..
- 2025-01-11 14:49:10
- 영속성-컨텍스트? entity-manager?BE_규원이 둘을 왜 공부해야 할까?JPA 의 핵심 개념이기 때문이다.이해하지 못하고 사용하면 JPA 의 이점을 100% 활용할 수 없게 된다. 영속성 컨텍스트에 대한 이해가 부족하다면,동일한 데이터를 반복적으로 조회하는 SQL 을 실행하는 등SQL 을 직접 사용해 개발하는 것보다 안 좋은 상황이 벌어질 수 있게 된다. JPA 는 자바 표준 ORM 기술이다. ORM?Object Relational Mapping 의 약자로, 객체를 DB Table 과 매핑해주는 기술이라고 한다.간단하게 기존 odbc, jdbc 를 한 번 더 wrapping 한 기술로, db 연결을 더 쉽게 해주는 기술이라고 생각하면 된다. JPA 의 요소EntityDB 에 mapping 될 객체 Entity ManagerEntity 를 관리하는 ..
- 2025-01-08 00:40:41
- tomcat-nettyBE_규원TomcatMulti-thread, Sync, Request-response-based, Java Web Application Server 입니다.주로 HTTP 기반의 request-response 구조를 처리하는 데 사용됩니다.Java EE Web Application 을 구동하기 위한 표준으로 사용됩니다.요청마다 개별 스레드를 생성해 request 를 병렬로 처리할 수 있습니다.Apache HTTPD, Nginx 등 별도의 웹 서버가 없어도 동작이 가능합니다.안정성이 높습니다. NettyMulti-thread, Async, Event-based, Network Application Framework 입니다.Tomcat 보다 저수준의 네트워크 작업을 다룰 수 있습니다.HTTP, TCP, UDP, Web..
- 2025-01-04 20:31:05
- effective-java-4BE_규원Item 4: Enforce noninstantiability with a private constructor생성자를 private 으로 막아, 인스턴스화를 차단하는 방법에 대해 다루는 내용이다. 정적 메서드와 정적 필드만으로 구서된 클래스를 작성하고 싶은 경우가 있다.이 클래스를 유틸리티 클래스라고 한다. 유틸리티 클래스는 객체 지향 설계를 회피하기 위한 수단으로 남용되며좋지 않은 평판을 얻기도 했지만 적절하게 사용하면 유용하다. 관련 메서드를 그룹화하는 클래스를 유틸 클래스로 사용하면 된다. 이 유틸리티 클래스는 인스턴스화 되지 않도록 설계해야 한다. 클래스의 생성자를 private 으로 막아두어 인스턴스 생성을 막아야 한다. 명시적으로 생성자를 만들지 않으면 public 접근 제어자를 가진 기본 ..
- 2025-01-01 20:54:55
- effective-java-3BE_규원Item 3: Enforce the singleton property with a private constructor or an enum type singleton 적용할 때,생성자를 private 으로 막거나 enum type singleton 을 사용해야 한다. singleton인스턴스를 하나만 생성할 수 있는 클래스이다.singleton 은 mock 객체를 활용한 테스트 어렵다.mock 객체를 사용하려면 singleton 이 interface 를 구현해야 한다. singleton 구현 방법 3가지 1. public final 필드를 사용하는 방법public class Elvis { public static final Elvis INSTANCE = new Elvis(); private El..
- 2025-01-01 18:38:08
- effective-java-2BE_규원Item02: Consider a builder when faced with many constructor parameters 필드가 많을 때, 생성자, 정적 팩토리 메서드로는 대응하기가 어려워진다.필드가 많은 경우 유용한 Builder 에 대해 알아보겠다. 생성자 패턴으로는 크게 3 가지가 있다. 1. Telescoping Constructor Pattern (=점층적 생성자 패턴)우선 NOT NULL 필드에 대해서만 생성자를 만들고,NULL 이 허용되는 필드가 하나씩 추가된 생성자를 점층적으로 만든다. public class Item { private final int id; // 필수 private final String name; // 필수 private final String ..
- 2025-01-01 18:36:05
- effective-java-1BE_규원Item01: Consider static factory methods instead of constructors Static Factory Methodpublic static 으로 선언되는 factory method 를 의미한다.정적 팩토리 메서드 라고 부른다.정적 팩토리 메서드를 가지는 클래스의 기본 생성자는 private 으로 막아둬야 한다.그렇지 않으면, 인스턴스 생성 방식에 대한 통제를 잃게 되며 이는 클래스 설계 의도에 적합하지 않은 행위이다. 우리는 일반적으로 인스턴스를 생성하기 위해 new 를 이용한다. 생성자를 통해 인스턴스를 생성하는 방법도 있겠지만,정적 팩토리 메서드를 통해 인스턴스를 생성할 수도 있다. 정적 팩토리 메서드를 사용하면 어떤 점이 좋을까?장점이름을 가질 수 있다.생성자는..
- 2025-01-01 18:33:39
- kotlin-기본-문법BE_규원기본 출력fun main() { println("Hello World!")}함수 생성은 fun출력 함수는 println; 은 붙이지 않음변수 선언fun main() { println("Hello World!") varTest() valTest()}fun varTest() { var num: Int num = 123 println(num)}fun valTest() { val num: Int num = 123 // num = 456 println(num)}자료형은 `변수명: 자료형` 순서로 작성var 은 변수 값 변경 가능val 은 java 에서 final 변수, 변수 값 변경 불가능한 번 할당 되면 변경이 안됨변수 생성과 동시에 초기화를 하는 경우..
- 2024-12-28 23:10:37
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)