개발자의 공부방/자바
-
지금까지 간단한 토이프로젝트를 하면서 record를 사용해봤습니다. 간단한 후기를 남겨보겠습니다. 레코드를 활용한 DTO 디렉토리 에러 상황 record를 사용하는 컨트롤러 @GetMapping("/article") public String newArticle(@RequestParam(name="id", required = false) Long id, Model model) { if(id == null) { model.addAttribute("article", new ArticleViewResponse()); // ! 에러 발생 } else { Article findById = blogService.findById(id); model.addAttribute("article", new ArticleView..
JAVA] DTO를 record로 이용해 만들어 봤다 feat. 사용후기지금까지 간단한 토이프로젝트를 하면서 record를 사용해봤습니다. 간단한 후기를 남겨보겠습니다. 레코드를 활용한 DTO 디렉토리 에러 상황 record를 사용하는 컨트롤러 @GetMapping("/article") public String newArticle(@RequestParam(name="id", required = false) Long id, Model model) { if(id == null) { model.addAttribute("article", new ArticleViewResponse()); // ! 에러 발생 } else { Article findById = blogService.findById(id); model.addAttribute("article", new ArticleView..
2023.12.27 -
서론 최근(?) 자바 & 스프링의 업데이트로 인해서 기본적인 환경이 변화되고 있습니다. 스프링부트3.0가 되면서 자바의 기본버전도 17부터로 변경됐고 자바 17에서는 기존에 람다와 var와 같은 각종 추가된 새로운 기능도 추가됐습니다. 클론 코딩 및 토이 프로젝트를 진행하다 기본적인 DTO 생성 시 Class 에서 record로 변경을 해봤는데 기본적인 이해를 해보고 적용해본 후기를 적어보고자 합니다. 레코드의 문법 설명은 건너뛰겠습니다. 문법 참고 사이트 더보기 Java 14 Record Keyword | Baeldung Java 14 Record Keyword | Baeldung Explore the fundamentals of records, including their purpose, genera..
자바] record를 써보자 feat. DTO서론 최근(?) 자바 & 스프링의 업데이트로 인해서 기본적인 환경이 변화되고 있습니다. 스프링부트3.0가 되면서 자바의 기본버전도 17부터로 변경됐고 자바 17에서는 기존에 람다와 var와 같은 각종 추가된 새로운 기능도 추가됐습니다. 클론 코딩 및 토이 프로젝트를 진행하다 기본적인 DTO 생성 시 Class 에서 record로 변경을 해봤는데 기본적인 이해를 해보고 적용해본 후기를 적어보고자 합니다. 레코드의 문법 설명은 건너뛰겠습니다. 문법 참고 사이트 더보기 Java 14 Record Keyword | Baeldung Java 14 Record Keyword | Baeldung Explore the fundamentals of records, including their purpose, genera..
2023.12.20 -
자바를 오랜만에 하니깐 개짜증납니다. 맥으로 인텔리제이를 하니깐 더 짜증납니다. 단축키의 노예인데 윈도우로만 작업했다가 간만에 맥으로 하려니 너무 짜증납니다람쥐 항상 자바스크립트를 이용하면서 함수형 프로그래밍에 익숙해지고 있는 와중에 다시 자바를 하려니깐 기억이 잘 안나서 기초적인 부분을 다시 학습하고 있습니다. 그 중에 하나인 람다 표현식을 간단하게 알아보려고 합니다. 아래는 뻔하디 뻔한 인터페이스와 추상 메서드입니다. 이녀석을 이용한 익명 클래스를 한번 만들어볼까 합니다. public interface FunctionalTest { void dodo(); } 보통 아래와 같은 형태를 사용하고는 합니다. 하지만 자바8의 기능인 람다를 사용해서 간결하게 표현해보도록 하겠습니다. import java.ut..
자바] 함수형 인터페이스 및 람다 표현식자바를 오랜만에 하니깐 개짜증납니다. 맥으로 인텔리제이를 하니깐 더 짜증납니다. 단축키의 노예인데 윈도우로만 작업했다가 간만에 맥으로 하려니 너무 짜증납니다람쥐 항상 자바스크립트를 이용하면서 함수형 프로그래밍에 익숙해지고 있는 와중에 다시 자바를 하려니깐 기억이 잘 안나서 기초적인 부분을 다시 학습하고 있습니다. 그 중에 하나인 람다 표현식을 간단하게 알아보려고 합니다. 아래는 뻔하디 뻔한 인터페이스와 추상 메서드입니다. 이녀석을 이용한 익명 클래스를 한번 만들어볼까 합니다. public interface FunctionalTest { void dodo(); } 보통 아래와 같은 형태를 사용하고는 합니다. 하지만 자바8의 기능인 람다를 사용해서 간결하게 표현해보도록 하겠습니다. import java.ut..
2022.10.12 -
1. 개요 일단 정처기 공부하면서도 나왔던 것 같은데 어쨌든 면접 질문에 빡쳐서 또 공부한다. 🤬 생각할 수록 빡친다. 디자인 패턴 1 싱글톤 패턴을 먼저 시작해본다. 예를 들어서 3명의 클라이언트가 있다고 가정한다. 각각의 클라이언트는 어떤 어플리케이션을 실행한다. 이때 이 어플리케이션 내부의 서비스 로직 중 어떤 것이 호출되는데 3명이 실행하고 호출하면 당연히 3번의 서비스 로직의 인스턴스가 생성되고 호출된다. 그럼 만약 100명이 호출한다면? 싱글톤 패턴은 이런 무분별한 인스턴스의 메모리 낭비를 방지하기 위해서 나온 것이다. 이제 코드를 통해 알아본다. 2. 본론 1) 싱글톤 패턴 코드 package hello.core.singleton; public class SingletonService { p..
자바] 디자인 패턴, 싱글톤 패턴1. 개요 일단 정처기 공부하면서도 나왔던 것 같은데 어쨌든 면접 질문에 빡쳐서 또 공부한다. 🤬 생각할 수록 빡친다. 디자인 패턴 1 싱글톤 패턴을 먼저 시작해본다. 예를 들어서 3명의 클라이언트가 있다고 가정한다. 각각의 클라이언트는 어떤 어플리케이션을 실행한다. 이때 이 어플리케이션 내부의 서비스 로직 중 어떤 것이 호출되는데 3명이 실행하고 호출하면 당연히 3번의 서비스 로직의 인스턴스가 생성되고 호출된다. 그럼 만약 100명이 호출한다면? 싱글톤 패턴은 이런 무분별한 인스턴스의 메모리 낭비를 방지하기 위해서 나온 것이다. 이제 코드를 통해 알아본다. 2. 본론 1) 싱글톤 패턴 코드 package hello.core.singleton; public class SingletonService { p..
2021.11.15 -
1. 개요 면접 보고 JVM 구조 질문이 있었다. 면접 끝나고 나서 갑자기 짜증이 났다. 아니 xx 이거 알아서 뭐 어쩌라는건데? 한글의 자음 모음의 첫 시작은 뭐고 그 구조는 언어학적으로 어떤지 모르면 한국어 못하는건가? 라는 이런 뜬금없는 생각이 났고 질문에 어버버 거리면서 머뭇거리는 상황이 떠올라서 갑자기 짜증이 확났다. 그래서 공부한다. 그리고 정리해본다. 2. 본론 자바 프로그램의 실행 단계 JAVA CODE (.java) ➡️ JAVAC Compiler ➡️ Byte Code (.class) ➡️ JVM ➡️ Windows or LINUX ➡️ Mac 그래서 자바코드를 갖고 개발할 때 JAVA를 다운받는 것이고 그 안에는 JDK(개발키트), JRE(런타임 환경)가 있는 것이다. 🎱 JRE는 J..
JVM 메모리 구조1. 개요 면접 보고 JVM 구조 질문이 있었다. 면접 끝나고 나서 갑자기 짜증이 났다. 아니 xx 이거 알아서 뭐 어쩌라는건데? 한글의 자음 모음의 첫 시작은 뭐고 그 구조는 언어학적으로 어떤지 모르면 한국어 못하는건가? 라는 이런 뜬금없는 생각이 났고 질문에 어버버 거리면서 머뭇거리는 상황이 떠올라서 갑자기 짜증이 확났다. 그래서 공부한다. 그리고 정리해본다. 2. 본론 자바 프로그램의 실행 단계 JAVA CODE (.java) ➡️ JAVAC Compiler ➡️ Byte Code (.class) ➡️ JVM ➡️ Windows or LINUX ➡️ Mac 그래서 자바코드를 갖고 개발할 때 JAVA를 다운받는 것이고 그 안에는 JDK(개발키트), JRE(런타임 환경)가 있는 것이다. 🎱 JRE는 J..
2021.11.15