일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- cicd
- Domain Driven Design
- 쿠버네티스
- 큐시즘
- 최범균
- 영속성
- redis
- K3S
- RESTClient
- 이펙티브자바
- Container Registry
- JPQL
- springboot
- 중간 지점 추천
- 자바 ORM 표준 JPA 프로그래밍
- Spring
- Spring Batch
- 모이삼
- 객체지향 쿼리 언어
- java
- 중간 장소 추천
- 한국대학생it경영학회
- 약속 장소 추천
- 백엔드
- GitHub Actions
- kusitms
- 도메인 주도 개발 시작하기
- ddd
- 모임 장소 추천
- JPA
- Today
- Total
목록java (16)
코딩은 마라톤

SPOT은... 외부 API 호출이 많다. SPOT의 메인 기능은 애플리케이션 레벨에서 최적의 중간 지점(역)을 계산하고, 이후 여러 출발지부터 중간 지점까지의 경로를 보여주는 것이다.이때 출발지 ~ 중간 지점까지의 경로를 대중교통과 자가용, 두 가지를 기준으로 보인다. 중간 지점을 계산할 때, 지하철역 공공데이터를 가져와서 환승까지 전부 고려하여 계산하기 때문에 지하철 상세 경로는 보여줄 수 있지만, 버스나 자가용은 구현할 엄두가 나지 않았다. 그래서 대중교통 경로는 Odsay를, 자가용 경로는 Kakao Mobility를 호출하여 가져오도록 하였다. 그러나,, 외부 API를 사용하는 편리함을 무료로 얻는 데는 한계가 있다.특히 Odsay의 제한 호출수는 일 1,000회로 리미트를 초과하면 서비스를 운..

문제 인식현재 나는 큐시즘 31기에서 밋업프로젝트를 진행하고 있다. 간략하게 서비스를 소개하면,1. 사용자의 출발지를 입력받는다.2. 모두에게 가장 공정한 중간지점을 계산해서 경로를 자세히 알려준다. 우리는 이번 밋업 프로젝트에서 출발지를 "서울"로 제한지어 입력받도록 했다.따라서 1번 과정에서 출발지를 입력하기 전, 검색 시 필터링하는 로직이 필요했다."place_name": "서울역","address_name": "서울 중구 봉래동2가 122-11","road_address_name": "서울 중구 한강대로 405","x": "126.97070335253385","y": "37.55406888733184", 그래서 나는 address_name의 제일 첫 번째 값인 "지역 1Depth, 시도 단위"를 ..

개발에 관한 내용보다는 느낀 점을 정리한 글이라서,, 개발에 관한 내용은 미흡할 수 있습니다계기참가 등록한 날짜가 정확히 기억난다. 4월 8일 🔥 (이때 Travis Scott 첫 내한 티켓팅이었어서,,,)티켓팅을 하고 학교 가서 수업을 듣는데 교수님께서 수업 초반에 컨퍼런스, 세미나 관련 얘기를 많이 해주셨다.컨퍼런스, 세미나를 많이 참여하는 게 좋다고 격려하시면서 AI 관련 세미나를 말씀해 주실 때 Microsoft에서 개최한 "Java on Azure Day Seoul 2025"도 알려주셨다. 이걸 보자마자 나는 스캇 티켓팅보다 기민하게 바로 신청했다 😂 이때가 시험기간 도중이라 참여하기 어려웠는데, 공강이었기 때문에 오전 세션은 참여할 수 있었다! 세미나 당일세미나 장소는 광화문에 위치한 한국..
시작에 앞서,애플리케이션 코드를 개발할 때는 명령형(imperative)과 리액티브(reactive, 반응형)의 두 가지 형태로 코드를 작성할 수 있다.명령형 코드순차적으로 연속되는 작업, 각 작업은 한 번에 하나씩 그리고 이전 작업 다음에 실행된다.데이터는 모아서 처리되고 이전 작업이 데이터 처리를 끝낸 후에 다음 작업으로 넘어간다.리액티브 코드데이터 처리를 위해 일련의 작업들이 정의되지만, 이 작업들은 병렬로 실행될 수 있다.각 작업은 부분 집합의 데이터를 처리할 수 있으며, 처리가 끝난 데이터를 다음 작업에 넘겨주고 다른 부분 집합의 데이터로 계속 작업할 수 있다.리액티브 프로그래밍 이해하기리액티브 프로그래밍은 명령형 프로그래밍의 대안이 되는 패러다임이다.명령형 프로그래밍의 문제작업이 수행되는 동안..

진행 중인 프로젝트에서 최근 ChatGPT를 연동해서 응답을 받아와야할 상황이 생겼습니다.OpenAI Java SpringBoot 라이브러리도 있기는 하지만 (https://github.com/TheoKanning/openai-java?tab=readme-ov-file)라이브러리보다 직접 구현하는게 나중에 API 명세가 바뀌더라도 변경하는데 용이하지 않을까 해서 구현해보았습니다! RestClient와 WebClient를 사용하여 구현할 수 있는데 저는 WebClient를 사용하였습니다!* 추후 RestClient와 WebClient에 관한 블로그도 올릴게요! 1. OpenAI API 요청과 응답 확인하기Create Chat Completion API를 사용하였습니다! (참고: https://platfor..
오랜만에 블로그 작성하네요,,,회사 적응 중이라 개인 공부를 하기 쉽지 않네요.. 는 변명이고 퇴근하고 집에 오면 너무 졸려요...ㅜ 뜬금없이 작성하는 이유는? 어제 코드 리뷰를 받다가 제가 이러한 코드를 작성했습니다.// 예시public static Computer of(Cpu cpu) { cpu = cpu != null ? cpu : gpu; // gpu는 cpu와 다른 예시 값입니다. ...} 코드 작성할 때"새로운 객체 생성하는 것보다 매개변수 객체를 재사용 하는 것이 낫겠군..!" 과 같이 생각하고 짯는데 메소드 개발 시 매개변수에 값을 할당하는 로직은 위험합니다참조 객체에 메소드 실행 후 set처리 되어 값 조작이 발생 가능합니다 위와 같은 코드리뷰를 받았습니다. 곰곰이 생각..
이번 글의 주제는 불변객체(Immutable Object)이다. 이 주제 역시 면접에서 질문을 받았었다. 면접관님 : 불변객체가 뭐예요? 나 : 내부 데이터를 변경할 수 없는 객체를 의미합니다.. 면접관님 : 불변객체를 쓰는 이유가 뭐예요? 나 : 객체지향의 특징 중 캡슐화때문이라고 할 수 있습니다. 캡슐화를 통해 객체는 외부에서 접근되지 않고 ~~~~~ 위와 같이 답변을 했지만,, 사실 불변객체가 말 그대로 "내부 데이터를 변경하지 못하는 객체"라고만 알고 있어서 이번 기회에 알아보고자 한다 ! 불변 클래스 불변객체를 알아보기 전에 불변 클래스부터 알아보자 ! 불변클래스란 인스턴스 내부의 값을 수정할 수 없는 클래스를 말한다. 그렇다면 불변클래스를 만드는 방법은 뭐가 있을까? 객체의 상태를 변경하는 메..

최근 프로그래머스를 풀던 중 모르는 메서드가 있었다,, (https://school.programmers.co.kr/learn/courses/30/lessons/42576) for (String c : completion) { hashMap.put(c, hashMap.getOrDefault(c, 0) + 1); } 바로 "getOrDefault()" 메서드이다. getOrDefault(Object key, V defaultValue) 자바 공식 문서에서는 위와 같이 설명하고 있다. 아래 코드는 Map 인터페이스에 구현된 default 코드이다. default V getOrDefault(Object key, V defaultValue) { V v; return (((v = get(key)) != null)..