본문 바로가기

전체 글128

변수 네이밍 추천 서비스 프로젝트 준비 - 0 웹 기반의 변수 추천 프로젝트를 개인적으로 개발하기 시작했다. 영감을 받은 사이트는 https://www.curioustore.com/#! . 구글이나 파파고에서 지원하는 NMT, SMT 등의 기계번역 api를 이용해서 변수명을 추천해주는 사이트이다. 나는 여기에 요새 재밌게 사용하고 있는 GPT3 기반의 openAI api를 추가해서 더 재밌는 서비스로 만들어보려고 한다. 스프링부트와 JPA, MySQL로 검색 요청과 추천 변수명 응답을 1차로 구현한 다음에, 실시간 업데이트와 게시판, 회원 기능을 2차로 구현하려고 한다. 추가로 타 유저 검색기록을 실시간으로 보여주는 기능은 SSE로 단방향 스트리밍을 구현 하는 걸 3차 목표로 하면 될 것 같다. 원래는 Intellij extension을 먼저 만들려.. 2023. 3. 9.
열거타입 enum을 사용하기 적절한 순간 Enum 클래스 열거형 클래스. Enum 클래스 내의 정의된 엘리먼트들은 public static final 형태로 사용된다. 그래서 같은 의미로 '연관된 상수들의 집합'으로 정의하기도 한다. (java 1.5 도입) public enum Batting { STRIKE, BALL, HIT; private static final Random random = new Random(); public static Batting generate() { int pick = random.nextInt(Batting.values().length); return Batting.values()[pick]; } } 예시 코드를 보면 어떤 야구 게임 내 도메인 모델을 구현한 도메인 객체(엔티티 클래스)에서 스트라이크, 볼, 안.. 2023. 3. 5.
모던 자바 인 액션 - Stream을 사용해보자 자바 8에서는 Stream API가 도입되어 데이터 처리를 간단하게 하고 가독성을 높혀서 코드 유지보수성을 높이고, 개발자의 생산성을 향상시킬 수 있다. Stream API를 사용하면 배열, 리스트, 파일 등 다양한 소스에서 요소를 추출하고 처리할 수 있다 스트림은 데이터 소스를 변경하지 않으며, 작업을 수행하는 중간 단계와 최종 작업으로 나뉘어진다. 이러한 중간 작업은 Lazy Evaluation 방식으로 처리되며, 최종 작업이 호출되기 전까지는 실행되지 않는다. 이러한 특징 때문에 처리 속도를 높일 수 있다. // 배열 스트림 예시 int[] numbers = {1, 2, 3, 4, 5}; IntStream stream = Arrays.stream(numbers); stream.forEach(Syst.. 2023. 3. 5.
모던 자바 인 액션 - 자바8 함수형 인터페이스 정리 함수형 인터페이스 사용법 함수형 인터페이스의 추상 메서드는 람다 표현식의 시그니쳐를 묘사한다. (함수 디스크립터) 자바 API는 Comparable, Runnable, Callable 등의 다양한 함수형 인터페이스를 포함하고 있음 java 8 에서 java.util.function 패키지로 다양한 함수형 인터페이스를 제공한다. 대표적인 함수형 인터페이스 3가지 - Predicate, Consumer, Function java.util.function.Predicate test 라는 추상메서드를 정의한다. 함수 디스크립터: T → boolean @FunctionalInterface public interface Predicate { boolean test(T t); } public List filter(L.. 2023. 2. 28.