자바의 정석 책을 보며 이름 붙은 반복문이 있다는 것을 알게 되었다.코드를 짤 때 중첩된 반복문을 전체로 break 하고 싶은 경우가 생길 때마다 C언어의 goto 같은 방식이 있으면 좋겠다고 생각했었다.일반 중첩 반복문과 이름 붙은 반복문을 비교해보겠다.일반 중첩 반
자바에서는 두 수 혹은 두 오브젝트가 같은지 비교할 때 == or equals()를 사용한다. 이 둘의 차이는 무엇일까?
Java에는 JVM (Java Virtual Machine)이 존재하는데, 내부에 메모리를 관리해주는 가상 프로그램이다. JVM의 메모리에는 Stack영역과 Heap영억이 존재한다. Stack 영역 정적으로 할당된 메모리 영역 primitive type의 변수들이
Java는 JVM의 메모리 관리를 통해 작동하는데, 내부에 Stack과 Heap에 메모리가 할당되게 된다. new 연산자는 Heap 영역에 메모리를 할당 받고 객체에게 메모리 참조 값을 리턴하면서 객체의 생성자를 호출하게 된다.
우아한테크코스 프리코스의 과제들을 다시 개발해보며 객체지향 설계 / 도메인 설계를 연습하고자 한다.객체지향이란 무엇인가... 요즘 객체지향의 사실과 오해라는 책을 읽고 있는데, 많은 도움이 된다. 그 책을 읽으면서 스스로 내린 정의는객체지향이란, 객체들이 어떤 메시지를
우아한테크코스 프리코스를 진행하며 아키텍쳐에 대한 고민이 많았다. 피어 리뷰 혹은 다른 사람들의 코드를 참고하니, MVC 패턴을 이용해 과제를 진행한 분들이 많았다. 2주차 과제를 할 때만 해도, MVC 패턴의 적용보다는 객체들의 협력만을 생각하며 과제를 진행했다.내가
우아한테크코스 프리코스 과제를 진행하며, 가장 첫 작업은 항상 기능 분류서를 작성하는 것이었다. 그리고 이 부분이 개발의 근원이 됨에도 기능 분류서에 있는 기능 별로 개발 / commit이 잘 이루어지지 않았다. 그 이유로기능 분류서에서 기능을 개발하는 단위에 맞지 않
요즘 개발하며 중심으로 생각하는 것이, 객체가 직접 일하게 만들자이다. 그동안 개발을 하며 테이블 중심으로 개발을 했었다. 그에 앞서서 객치지향이란 무엇인가? 나의 정의는역할을 가진 객체들끼리 메시지를 주고받으며 협력하는 공동체라고 생각한다.여기서 역할이란, 자신의 관
자바 클래스 파일 .java자바 컴파일러 javac가 컴파일자바 바이트 코드 .classJVM의 Class Loader로 자바 바이트 코드가 전달 됨.Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 후, 링킹해 JVM의 메모리인, Runtime Dat
프로그램에서는 오류가 발생하기 마련인데, 3가지 오류가 발생한다.컴파일 오류 : 컴파일 시에 발생하는 오류런타임 오류 : 실행 중에 발생하는 에러논리적 오류 : 실행 중 의도와 다르게 동작하는 오류Java에서는 문제가 있는 상황을 두 가지로 분류한다.예외와 에러이다.예
동작 파라미터화(Behavior Parameterization)란 메서드의 동작을 파라미터로 받음으로써 변화에 대응하기 좋은 디자인 패턴이다.예시로, 서비스에 User가 두 부류(Member, Designer)가 있다고 할 때, 한 서비스 객체에서 userList 중
이번 글을 통해상속과 인터페이스의 목적상속과 인터페이스의 장단점결론에 대해 정리하고자 한다.상속은 같은 부류의 클래스임을 활용해 코드의 재사용이 가장 큰 목적이라고 생각한다.인터페이스는 구현에서 관심을 분리하는 것이 가장 큰 목적이다. 좀 더 구체적으로 합성(Compo
일반적인템플릿 메서드전략 패턴 (템플릿 콜백 패턴)프록시프록시 패턴데코레이터 패턴인터페이스를 이용한 프록시클래스를 이용한 프록시JDK 동적 프록시CGLIB 프록시스프링 ProxyFactory
corePoolSize maxPoolSize