java 4

자바의 제네릭(Generic)

1. 제네릭이란 무엇인가? 구현 시에 클래스 내부에서 타입을 지정하는 것이 아니라, 일반화 해두고 선언시에 개발자가 타입을 지정하여 사용하는 것. public class Box { private T content; public void setContent(T content) { this.content = content; } public T getContent() { return content; } public static void main(String[] args) { // Integer를 위한 Box 생성 Box integerBox = new Box(); integerBox.setContent(10); int intValue = integerBox.getContent(); System.out.print..

JAVA 2024.04.08

자바의 신 인사이트 정리

클래스와 인스턴스 1. 클래스란 무엇인가? 자바의 최소 단위, 클래스는 상태와 행동을 가짐 상태와 행동이란 무엇인가? 자바에서 상태는 속성들의 집합, 행동은 메서드로 정의할 수 있음 변수는 그 자체로 상태라기보다는 하나의 속성! 속성이 메서드에서 어떤 행동들을 하게 되고 -> 그러면 어떤 상태라고 정의할 수 있다. 2. 인스턴스란 무엇인가? 클래스는 인스턴스(객체)를 생성하기 위한 틀. 클래스 자체로는 어떤 작업을 할 수 없음. 인스턴스 생성해서, 인스턴스를 통해 작업을 수행하는 것 즉, 인스턴스가 메모리(heap) 영역에 올라가서 실제로 작업이 되는 것. public class Person { // 필드(속성) private String name; private int age; // 생성자(Constr..

JAVA 2024.03.21

[토비의 스프링vol.1 2장] 테스트

2장 테스트 만들어진 코드를 확신할 수 있게 해주고, 변화에 유연하게 대처할 수 있게 자신감을 주는 기술 웹을 통한 DAO 테스트 방법의 문제점 서비스 클래스, 컨트롤러, JSP 뷰 등 모든 레이어의 기능을 다 만든 후에야 테스트가 가능 에러 메시지와 호출 스택 정보만으로 원인 찾기 힘듦 DAO를 테스트 하려고 만든 다른 레이어의 코드 때문에 에러가 날 수 있음 테스트 하고 싶은 대상에 다른 계층의 코드, 컴포넌트 서버의 설정 상태가 모두 영향을 줌 작은 단위의 테스트 가능한 작은 단위로 쪼개서 집중 -> 관심사의 원리 적용 UserDaoTest 를 수행할 때 웹 인터페이스, 이를 위한 MVC 클래스, 서비스 오브젝트, 서버 배포 필요가 없음 -> 단위 테스트(Unit Test) 통제할 수 없는 외부의 ..

[토비의 스프링vol.1 1장] 오브젝트와 의존관계

1장 오브젝트와 의존관계 스프링은 객체지향 프로그래밍을 추구한다. 그렇다면, 스프링이 집중하는 오브젝트를 먼저 이해해야 한다. 1장에서는 UserDao 클래스를 만들고, 코드를 객체지향에 충실한 코드로 리팩토링 하며 오브젝트와 의존관계에 대해 이해한다. 1.1 초난감 DAD DAO(Data Access Object) : DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트 자바빈 : 다음 두 가지 관례를 따라 만들어진 오브젝트 디폴트 생성자: 자바빈은 파라미터가 없는 디폴트 생성자를 갖고 있어야 한다. 툴이나 프레임워크에서 리플렉션을 이용해 오브젝트를 생성하기 때문에 필요하다. 프로퍼티: 자바빈이 노출하는 이름을 가진 속성을 프로퍼티라고 한다. 프로퍼티는 set으로 시작하는 수정자 ..