Develop/Java

    Spring MVC 간단 정리

    Spring MVC에 앞서 일단 MVC에 대해 간단하게 정리를 하고 가도록 하겠습니다. MVC MVC란 Model, View, Controller를 의미하며, 소프트웨어 디자인 패턴의 일종 Model 클라이언트가 전달하는 정보 또는 데이터, 혹은 클라이언트의 요청에 따라 반환하는 정보 또는 데이터 위 정보 또는 데이터를 가공하고 관리하는 비즈니스 로직도 포함 즉, 정보 또는 데이터 값 및 비즈니스 로직 View 클라이언트의 요청에 따른 반환값을 어떻게 표현하는가?에 대한 부분 정적인 HTML을 반환할지, Model 값을 사용하여 동적인 HTML을 반환할지, 그렇다면 어떻게 렌더링 할지 등에 대한 역할 즉, 단어 뜻 그대로 보이는 부분에 대한 것 Controller 클라이언트의 요청에 따라 동작을 제어하는..

    Spring 기동시 bean 초기화 메서드 호출 방법

    구현을 하다보면 몇몇 bean에서 Spring 기동시 초기화가 되어야 하는 경우가 있는데 이에 대한 내용을 공유하고자 합니다. 생성자에서 초기화 메서드 호출 @PostConstruct annotation 사용 생성자에서 초기화 메서드 호출 @Component public class beanClass { public beanClass() { init(); } private init() { // init logic } } 위 예제 코드와 같이 생성자에 초기화 메서드를 호출하도록 하여 bean을 생성할 때 초기화 로직이 동작하도록 하는 방법이 있으나, 이는 DI를 이용하여 추가한 객체에 대한 로직이 init() 메서드에 포함이 되어있다면 에러가 발생하게 된다. @Component public class Bea..

    Java - File read 2가지 방법

    Java를 사용하여 파일을 읽어야 하는 경우 여러가지 방법이 있지만, 그 중 2가지 방법을 소개하고자 한다. Files.readAllLines(Path) Files.newBufferedReader(Path) & readLine() Files.readAllLines(Path) Path path = Path.of("/users/user/document/text.txt"); try { List content = Files.readAllLines(path); for(String line : content) { System.out.println(line); } } catch (IOException e) { System.out.println("File open failed : " + e.getMessage()); ..

    JPA Fetch Type

    JPA를 사용 시 어노테이션을 사용하여 객체 간 연관관계를 지정하게 되는데, 이때 옵셔널로 설정할 수 있는 항목 중 fetch라는 키워드가 등장하게 된다. (JPQL에서도 fetch join 이라는 단어가 등장하게 되는데, fetch 전략과 fetch join은 다른 내용) Fetch는 간단하게 말하자면 로딩 전략이라고 보면 된다. 즉, 연관관계로 지정되어 있는 객체에 대한 정보를 언제 로드할 것인가?에 대한 내용이라고 볼 수 있다. 그리고 이때 사용되는 fetch type에는 EAGER, LAZY 총 2가지가 존재한다. 그럼 이 2가지의 차이점은 무엇인가? EAGER (즉시 로딩) 객체에 대한 데이터 조회 즉시 연관관계 매핑이 되어있는 객체의 정보 또한 조회하는 방식 즉, 연관관계가 있는 모든 데이터를..

    Collection framwork

    Collection framwork

    Collection framwork에 대해 공부한 내용을 바탕으로 작성한 글이기 때문에 잘 못 된 내용이 있을 수 있습니다. 댓글로 알려주시면 수정하도록 하겠습니다! Collection framwork 컬렉션 프레임워크란 Java에서 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합입니다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이라 볼 수 있습니다. 자주 쓰이는 컬렉션 프레임워크의 클래스 구조도를 보면 아래의 이미지와 같습니다. (아래의 이미지에 나와있는 구조도는 간략화되어 있으며, 실제로는 훨씬 더 많고 복잡합니다.) 이미지에서 볼 수 있듯이 컬렉션 프레임워크는 크게 List, Set, Map 3가지로 나눌 수..

    제네릭(Generic)이란?

    제네릭(Generic)이란?

    제네릭에 대한 설명에 앞서, Java에서 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 컬렉션 프레임워크(collection framwork)라고 합니다. 자주 쓰이는 컬렉션 프레임워크의 클래스 구조도를 보면 아래의 이미지와 같습니다. (아래의 이미지에 나와있는 구조도는 간략화되어 있으며, 실제로는 훨씬 더 많고 복잡합니다.) 제네릭(Generic) 위 이미지에서 보면 라던가 라는 표현을 볼 수 있습니다. 해당 표현은 제네릭을 의미하며, 제네릭이란 사전적 의미로 "일반적인"이라는 의미를 갖고 있는 단어입니다. Java에서도 비슷한 의미로 사용되며, 클래스 내부에서 사용할 데이터 타입을 외부에서 파라미터 형태로 지정하여 일반화를 한다는 의미입니다. 즉, 클래스 및..

    Java 클래스 검색법

    Java 클래스 검색법

    Java에서 필요한 메서드를 찾을 때, 사용하고 있는 클래스의 문서를 참고하면 어떠한 메서드들이 있는지 알 수 있습니다. 여기서 말하는 문서란 Java의 공식 문서이며, Oracle에서 Java 버전별로 클래스의 문서를 제공하고 있습니다. 해당 문서를 검색하는 방법은 구글에 간단하게 "Java String doc" 이런 식으로 검색하시면 해당 클래스에 대한 문서가 나옵니다. 위 이미지처럼 구글링 시 나오는 페이지 중 Oracle Help Center 페이지를 참고하시면 됩니다. URL로는 docs.oracle.com인 사이트입니다. 해당 사이트를 들어가 보면 아래와 같은 이미지를 볼 수 있습니다. 아래의 이미지는 살짝 아래로 이동한 상태입니다. 보시면 필드 및 생성자, 메서드 요약(summary) 항목이..

    클래스와 인스턴스 - class & instance

    TIL 순서가 밀리기도 했고.. Java 관련 설명이 대부분이라 Java 카테고리에 작성하였습니다. 해당 게시글의 내용은 2022년 05월 10~11일에 공부한 내용입니다. 두서없이 편하게 정리하였음을 참고해 주세요. 작성된 내용 중 틀린 내용이 있다면 알려주세요! OOP의 맨 첫 글자인 Object, 즉 객체를 만들기 위해서 Java에서는 어떤 개념들을 사용하는가? 클래스(class) 객체(object) 인스턴스(instance) 인스턴스화(instanciate) 위 개념들을 사용하여 OOP를 구현하고 있으며, Java에서 클래스와 인스턴스를 어떻게 사용하는지 알아보자 (각 개념들의 내용은 이전에 작성했었던 게시글인 OOP - 객체 지향 프로그래밍을 참고하여 주세요.) 추가로 static과 java의 ..