서버에서 파일을 관리할 때 클라이언트가 보낸 파일 이름 그대로 저장한다면 이미 있는 파일을 덮어 쓸 수 있다. 그래서 파일을 저장할때는 겹치지 않는 파일명으로 관리해야 한다. 그럴때 스프링이 제공하는 UUID를 활용하면 편하다.UUID.randomUUID().toStr

Error vs ExceptionError: 메모리 부족 처럼 어플리케이션에서 복구 불가능한 예외 계층Exception: 개발자가 복구 가능한 예외가 포함된 계층 기본적으로 자바의 예외는 체크 예외와 언체크 예외로 나뉜다.체크 예외가 대부분이고 언체크 예외로는 Runt

만약에 내가 여러명의 학생 정보를 출력하는 프로그램을 작성한다고 해보자. 이때 각 학생은 이름, 나이, 성적을 가지고 있다. 만약에 클래스가 없다면 배열을 이용해서 정보를 표현할 것이다.만약에 정보가 추가된다면, 각 배열에 정보를 기입해주면 된다. 이때 데이터를 변경한
이 둘의 차이점을 명확하게 구분한다면, 객체지향에 대한 이해가 더욱 쉬워진다. 먼저 절차 지향은 말 그대로 절차를 지향한다. 즉, 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 반면에 객체 지향은 말 그대로 객체를 지향한다. 이는 실제 세계의 사물이나 사건을

자바의 메모리 구조는 크게 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다.메서드 영역: 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이러한 데이터에는 클래스, static, 상수등이 있으며, 메서드 영역은 모든 영역에서 공유한다.스택 영역: 자바 실

자바에서 제공하는 상속의 기능은 공통부분을 부모에서 제공함으로써 유지보수의 용이함에 도움을 준다. 이러한 상속을 이해하기 위해서 힙 영역에서 인스턴스가 어떻게 생성되는지 이해할 필요가 있다.그림과 같이 Car 라는 부모 객체를 2개의 자식이 상속받고 있다. 이 덕분에

개요 객체 지향 프로그래밍에서 제공하는 다형성 에 대해서 살펴보자. 이러한 다형성 덕분에 공통 부분을 부모 클래스가 상속해주거나, 역할과 구현의 기능을 분리하는 강력한 기능을 제공한다.

좋은 객체 지향 설계 원칙중 하나인 OCP 원칙은 다형성인 인터페이스, 추상 클래스 등을 이용하여 준수할 수 있다. 이때 구현 VS 상속을 확실히 구분하여 언제 무엇을 사용하는 것이 좋을지에 대해서 감을 잡아보자.OCP 는 코드 기능의 확장에는 열려 있고, 코드 수정시