전체 글 42

[코딩테스트(Java)] 프로그래머스 42889 실패율

https://school.programmers.co.kr/learn/courses/30/lessons/42889# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  public int[] solution(int N, int[] stages) { int[] answer = new int[N]; LinkedHashMap hashMap = new LinkedHashMap(); int over; int same; for (int i = 0; i i) { over++; } if (stages[j] == (i + 1))..

코딩테스트 2025.03.08

[SpringBoot] Spring Batch로 csv파일을 db에 저장해보자

📍개요https://inhooo00.tistory.com/entry/SpringBoot-Google-Places-API-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0 [SpringBoot] Google Places API 사용해보기📍개요프론트에게 좌표를 전달하기 위해서, 구글 API를 사용해서 주소값을 좌표값으로 변환하는 로직을 구현하고자 한다.코드로 구현하기 전 Places API를 호출해보겠다.  📍API 키 만들기https://dinhooo00.tistory.com 이전 글에서 Google places API를 통해 특정 장소의 다양한 정보들을 받아올 수 있었다.이를 파이썬 코드를 이용해서 추출한 뒤 (이 방법은 추후에..),맛집 리스트를 공공 데이터 포털에..

springboot 2025.03.08

[코딩테스트(Java)] 프로그래머스 17682 다트 게임

https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr public int solution(String dartResult) { int answer = 0; List result = new ArrayList(); String number = ""; for (int i = 0; i  📍포인트1 .처음 다트 3번 던지는 기준을 어떻게 나눌지가 가장 고민이였음.2. 그 뒤의 로직은 리스트 순서 관리만 잘 하면 해결.3. 재활 2일차 📍삽질1. 다트 게임 3번을 나눠서 진행 vs ..

코딩테스트 2025.03.07

[코딩테스트(Java)] 프로그래머스 17681 비밀지도

오늘부터 재활 들어갑니다..https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; String[] arr1To = new String[n]; String[] arr2To = new String[n]; for (int i = 0; i  📍포인트1. arr1To[i] = String.format("%" + n + "s"..

코딩테스트 2025.03.06

[SpringBoot] Google Places API 사용해보기

📍개요프론트에게 좌표를 전달하기 위해서, 구글 API를 사용해서 주소값을 좌표값으로 변환하는 로직을 구현하고자 한다.코드로 구현하기 전 Places API를 호출해보겠다.  📍API 키 만들기https://developers.google.com/maps/documentation/places/web-service/overview?hl=ko 개요  |  Places API  |  Google for Developers사용자가 입력할 때 비즈니스, 주소 및 관심 장소와 같은 장소를 반환하여 텍스트 기반 지역 검색에 관한 예상 검색어 예상 검색어를 제공합니다.developers.google.comGoogle Maps Platform에 들어가서 "시작하기"를 누르면 api 키를 얻을 수 있다. 만약 복사하지 ..

springboot 2025.03.06

[SpringBoot] Discord WebHook 연동해보기

📍개요이번에 진행하는 프로젝트에서 신고하는 로직이 있습니다.이 로직을 서버에서 빠르게 인지하기 위해서 많이 사용하는 Discord와 연결해보고자 합니다.   📍디스코드 설정먼저 디스코드 알림을 위한 채널을 생성합니다.그 후 연동 -> 웹후크 -> 새 웹후크로 웹후크를 생성한 후, 웹후크 URL을 복사해줍니다.이제 이 URL를 사용해서 연결해주기만하면 끝!   📍코드로 구현하기package shop.babsim.babsim_betta.global.discord.dto;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;public record DiscordWebhookMessage( String content)..

springboot 2025.03.04

[SpringBoot] JPA, Hibernate, 그리고 Spring Data JPA 톺아보기

📍개요여러 프로젝트를 경험하면서 JPA로만 구현했었다. 구현하면서 듣는 말인 JPA와 Spring Data JPA의 차이점, 로그에는 뜨지만 무엇인지 정확히 모르는 Hibernate 등등.. 확실히 깊게 이해하고 있지는 않는 느낌이 들었다. 이번 기회에 Spring Boot에서 DB에 접근하기 위해 사용하는 JPA 기술을 톺아보려고 한다.   📍JPA란?JPA는 Java Persistence API의 약자로, 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.여기서 중요히 봐야할 부분은 JPA는 인터페이스라는 것이다.스프링의 PSA에 의해서(POJO를 사용하면서 특정 기술을 사용하기 위해서)표준 인터페이스를 정해두었는데, 그중 orm을 사용하기 위해 만든 인터페이스가 바..

springboot 2025.02.19

[Java] 튜닝의 마지막 단계 GC 알아보기

📍GC(Garbage Collection)란?프로그램이 동적으로 할당했던 메모리 영역 중 필요 없게 된 영역을 알아서 해제하는 것으로 GC는 메모리 관리 기법 중 하나다.여기서 동적으로 할당했던 메모리 영역은 프로그램 런타임에 사용되는 Heap 영역 메모리를 뜻하고,필요 없게 된 영역은 어떤 변수도 가리키지 않게 된 영역을 의미한다.C,C++의 경우 Heap 영역의 메모리를 관리하기 위해 코드 레벨에서 할당 받고, 해제해야 했다. (포인터)이렇게 수동으로 해제해야하는 경우 할당받은 메모리 영역을 제대로 해제하지 않아 memory leak이 발생하기도 한다.다행이 필자가 사용하는 Java나 Javascript 같은 언어에서는 동적 메모리 영역 해제를 GC가 대신 해준다.   📍GC가 왜 필요할까?또 어..

java 2025.02.05

[Java] Java 용어들을 알아보자. (JRE, JDK, JVM)

📍개요카카오 탐방 중 JVM과 GC와 같은 Java의 기본적인 원리가 무엇인지 설명할 수 있느냐는 질문에 말문이 막혔다.자바 파일을 운영체제 상관없이 사용하게 도와주는 프로그램이라는 것만 알고 그 이상 설명할 수 없었던 나 자신에게 충격받고, 기본적인 내용을 다시 한 번 정리해보려 한다.   📍JVM(java virtual machine)이 무엇일까?컴퓨터들은 모두 같은 기계어를 쓰는 게 아니다.C언어로 짜서 컴파일한 기계어인데 윈도우에서 돌아가게 컴파일한 것은 맥이나 리눅스에서는 안 도는 현상이 발생한다.그럼 어떻게 해야할까? 프로그램이 돌 환경을 생각해서 그 환경에 맞도록 기계어를 번역해줘야 한다. 그렇게 매우 번거롭다.이런 문제를 해결하기 위해 만들어진 게 자바의 JVM이다.쉽게 말하자면 각 종..

java 2025.02.01

[Server] Nginx가 뭔데 배포할 때마다 설치하는거지?

📍개요스프링 프로젝트를 AWS로 배포하게 될 때마다 Nginx를 통해서 진행한다.그럴 때마다 드는 생각이 "AWS에서도 Nginx 없이 호출이 가능하지 않나? 기본적으로 Spring boot에 tomcat이 있을텐데.."였다.왜 다양한 레퍼런스를 참고하면 다들 Nginx를 사용해서 배포를 하는 걸까? 필수도 아닌데 무엇이 좋길래?   📍웹서버시작하기 앞서 우리는 웹서버의 개념을 확실히하고 가야한다.서버란 개념은 어떤 컴퓨터로 하여금 서버 역할을 하도록 해주는 소프트웨어를 무슨무슨 서버라고 부른다.그래서 백엔드 개발자를 보고 서버를 개발한다고 하는 것.웹서버도 소프트웨어의 개념이다. 그 대표로 아파치, Nginx가 있다. 쉽게 말해 '웹' 서버니까 이 컴퓨터를, 서버들 중에서도 웹사이트를 제공하는 서버..

server 2025.01.21