2024 KAKAO WINTER INTERNSHIP: 가장 많이 받은 선물 문제 풀이 코딩테스트 연습 | 프로그래머스 스쿨 개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요! school.programmers.co.kr 🔒 문제 선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다. 두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다. 예를 들어 A가 B에게 선물을 ..
무한 스크롤이란? 무한 스크롤(Infinite Scroll)은 웹사이트나 앱에서 사용되는 스크롤링 기술로, 사용자가 웹페이지를 스크롤 하면 새로운 콘텐츠가 자동으로 동적으로 로드되는 방식이다. 기존의 페이지를 새로 고침 하거나 페이지 이동 버튼을 누르지 않고도 사용자들이 끊임없이 콘텐츠를 스크롤 하여 볼 수 있게 해주는 기술로 사용자가 페이지에 머무르는 시간을 증가시킨다. 나는 이번 nest.js 프로젝트에서 무한 스크롤 구현을 담당했다. 처음에는 무한 스크롤이라고 하니 무척 낯설고 어려워서 막막했는데 원리를 공부하고 직접 구현해 보니 생각보다 어렵지 않았다. 아래는 내가 구현한 페이지에서 무한스크롤이 작동하고 있는 모습이다. 메이트 탐색 페이지에서 랜덤 메이트 탐색 스크롤 부분에서 무한 스크롤을 구현..
이전 포스트: 공공 데이터 포털에서 원하는 Open API 사용 신청하고 데이터 가져오는 방법 [Backend] 공공데이터 포털 OPEN API 크롤링 사용 방법 A to Z | 인증키 오류 해결 방법 안녕하세요 오늘은 공공데이터 포탈에서 데이터를 크롤링하는 방법을 공유해 보겠습니다. 저는 이번 겨울 방학에 2024 구글 솔루션 챌린지에 참가하기 위해 열심히 프로젝트를 진행하고 있는데 yuejeong.tistory.com 자 그럼 드디어 XML 형태로 포탈로부터 응답받은 데이터를 우리가 원하는 형태로 가공하는 방법을 확인해 보겠습니다. 이때, 포탈로부터 받을 수 있는 데이터는 XML 뿐만 아니라 JSON으로도 받을 수 있는데요, 하지만 XML만 지원하는 Open API 가 훨씬 많기 때문에 XML로만 ..
안녕하세요 오늘은 공공데이터 포탈에서 데이터를 크롤링하는 방법을 공유해 보겠습니다. 저는 이번 겨울 방학에 2024 구글 솔루션 챌린지에 참가하기 위해 열심히 프로젝트를 진행하고 있는데요, 저희 프로젝트 주제는 '장애인의 버스 승하차를 돕는 안드로이드 어플'입니다. 해당 프로젝트는 실시간 버스 위치 정보, 버스 노선 정보, 특정 정류장 경유 노선 정보 등 다양한 공공 데이터를 필요로 하기 때문에 이번에 처음으로 공공 데이터 포털에서 Open API를 사용해 여러 유용한 정보를 크롤링했습니다. 그럼 그 방법을 자세하게 공유해 보겠습니다! 1. 공공데이터 포털에서 사용할 API 검색하기 https://www.data.go.kr/ 우선 자신이 찾고 싶은 API를 검색해 줍니다. 정말 다양한 데이터가 있으니 검..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 9를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈과 프로토타입 빈을 함께 사용하는 경우 프로토타입 빈을 주입 시점이 아닌 사용할 때마다 새로 생성해서 사용할 수 있도록 하는 방법 스프링 컨테이너에 요청 package hello.core.scope; import org.junit.jupiter.api.Test..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 9를 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 빈 스코프: 빈이 존재할 수 있는 범위! ✅스프링이 지원하는 다양한 스코프 1️⃣싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 2️⃣프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 3️⃣웹 관련 스코프 - re..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 8을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 스프링 빈의 초기화 시점 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링에서 이러한 초기화 작업과 종료 작업을 어떻게 진행하는 걸까? 외부 네트워크에 연결하는 객체를 생성하는..
본 포스팅은 인프런 김영한 강사님의 스프링 부트 핵심 원리 강의 섹션 7을 수강하고 배운 점을 정리했습니다. 스프링 핵심 원리 - 기본편 강의 - 인프런 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보세요! 📢 www.inflearn.com 1. 옵션 처리 : 주입할 빈이 없는 경우 주입할 스프링 빈이 없어도 동작해야 할 때가 있다. 그런데 @Autowired 만 사용하면 required 옵션의 기본값이 true로 되어 있어서 자동 주입 대상이 없으면 오류가 발생한다. 자동 주입 대상을 옵션으로 처리하는 방법 1️⃣ @Autowired(required=false) : 자동 주입할..
1. 실시간 채팅 기능을 위한 웹소켓에서 발생하는 에러 우리 서비스의 주요 기능이기도 한 실시간 대화방은 소켓 통신을 활용해서 구현했다. 클라이언트와 서버는 TCP의 3 way handshake 방식을 사용해서 네트워크를 형성하고, 클라이언트가 메시지를 보내면 해당 메시지를 데이터베이스에 저장하고 Broadcast 하여 대화방에 다른 사용자들에게도 실시간으로 메시지를 던져주는 방식이다. 로컬에서는 분명 잘 작동하던 소켓 통신... 하지만 쿠버네티스에 적용하려니 정말 끝도 없는 오류를 쏟아냈다. 우선 가장 난감했던 것은 ws 프로토콜로 이뤄진 웹소켓 연결 request url인데, http를 고칠 때와 다르게 어떤 url을 써줘야 하는지 여러 번의 실험을 시도해야 했다. 또한 웹소켓 연결 에러가 거의 3초..
백준 #1012 유기농 배추 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 🔒 문제 설명 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추 흰 지렁이를 구입하기로 결심한다. 이 지렁이는 배추 근처에 서식하며 해충을 잡아먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추 흰 지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충..