분류 전체보기

이전 포스팅에서는 WebClient를 사용하여 1번째 페이지에 해당하는 데이터를 조회하고 DB에 저장하는 과정을 수행했다. 이번에는 모든 데이터를 저장하기 위해 전체 페이지 수를 계산하고 반복문을 통해 모든 데이터를 조회하려고 한다. 1. 응답 데이터에서 필요한 값 파싱하기 String pharmacyInfo = webClient.get() .uri(uriBuilder -> uriBuilder .path(PHARMACY_ENDPOINT) .queryParam("serviceKey", PHARMACY_API_KEY) .queryParam("_type", "json") .build()) .retrieve() .bodyToMono(String.class) .block(); JSONParser parser = ..
WebClient 선정 이유최근 Spring 3.2부터 추가된 RestClient를 사용하면 기존의 RestTemplate의 직관적이지 못한 사용성과 WebClient의 의존성 문제를 해결할 수 있다. 하지만 외부 여러 API를 통해 대량의 데이터를 조회해야 하므로 비동기적 수행이 필수적이다. RestClient에서는 비동기 기능을 찾아볼 수 없었으므로 비동기 방식을 지원하는 WebClient를 사용하려고 한다. WebClientConfig@Configurationpublic class WebClientConfig { @Value("${open-api.base-url}") private String BASE_URL; @Bean public WebClient pha..
· Etc
Google-Java-Style-Format 적용 1. IntelliJ IDEA > Settings 선택 2. Preferences > Editor > Code Style 선택 3. Scheme > Import Scheme > IntelliJ IDEA code style XML 선택 4. https://github.com/google/styleguide에 접속하여 intellij-java-google-style.xml 파일을 다운받은 후, 파일을 open하고 저장 5. GoogleStyle로 변경 완료 Google-Java-Style-Format 사용법 Mac 기준 Option + Command + L을 누르면 포맷에 맞게 코드가 변경된다. 파일을 저장할 때마다 formatter 작동시키기 1. Inte..
🗂️ 문제 링크: https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 💡 접근법 1을 만드는 방법은 1가지이고, 2를 만드는 방법은 (1+1), (2)로 2가지이고, 3을 만드는 방법은 (1+1+1), (2+1)*2, (3)으로 4가지이고, 4를 만드는 방법은 (1+1+1+1), (1+1+2)*3, (1+3)*2, (2+2)로 7가지이고, 5를 만드는 방법은 (1+1+1+1+1), (1+1+1+2)*4, (1+2+2)*3, (3+1+1)*3, (3+2)*2로 13가지이다. 이를 점화식으로 나타내면 dp[i] = dp[i-1] + dp[i-2] +..
· CS
NoSQL의 등장 배경 NoSQL은 기본 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터베이스로, 분산 환경에서 대용량의 데이터를 빠르게 처리하기 위해서 개발되었다. RDBMS의 한계 NoSQL이 등장하기 20년간, 데이터를 저장하는데는 RDBMS가 주로 사용되었다. 하지만 2009년 이후로 폭발적으로 데이터가 늘어나면서 RDBMS는 데이터를 처리하는 비용의 증가로 난관에 부딪힌다. 스키마 문제: 빅데이터를 RDB의 스키마에 맞춰 저장하려면 매우 긴 시간이 걸린다. 스케일업의 한계: 성능을 올리는 데에 비용의 한계가 있으며, 스케일 아웃 환경에서 RDBMS를 조작하는 것은 어렵다. Relational SQL vs NoSQL Relationl SQL NoSQL 데이터 저장 행과 열을 가진 ..
· CS
프록시(Proxy)란? “대리”, “대신”의 의미로, 내부 네트워크에서 인터넷 접속을 할 때에, 빠른 엑세스나 안전한 통신 등을 확보하기 위한 중계서버를 프록시 서버라고 한다. 클라이언트와 웹 서버의 중간에 위치하여 중계기로서 대리로 통신을 수행하는 역할을 한다. 이를 통해 클라이언트에겐 빠른 속도의 서비스를, 서버에게는 불필요한 부하를 줄이는 효과를 낼 수 있게 된다. 프록시(Proxy)의 종류 프록시는 포워드 프록시와 리버스 프록시로 나뉘며, 포워드 프록시는 클라이언트, 리버스 프록시는 서버쪽의 설정을 담당한다. 포워드 프록시 클라이언트 뒤에 위치한다. 내부망에서 클라이언트와 프록시 서버가 통신하여 인터넷을 통해 외부에서 데이터를 가져온다. 클라이언트가 인터넷에 직접 접근하는 것이 아니라, 프록시 서..
🗂️ 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근법 triangle[i][j]에 도달하는 방법은 두 가지 방법이 있다. 대각선 왼쪽에서 내려오는 경우에는 dp[i][j] = dp[i-1][j-1] + t 이다. 대각선 오른쪽에서 내려오는 경우에는 dp[i][j] = dp[i-1][j] + t 이다. 또한 인덱스가 0일 때(맨 왼쪽)는 오른쪽에서 내려오는 경우밖에 없고, -1일 때(맨 오른쪽)는 왼쪽에서 내려오는 경우밖에..
🗂️ 문제 링크: https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 💡 접근법 계단을 어떻게 올라갈까?가 아니라 계단을 어떻게 올라왔을까? 라는 관점에서 접근해야 한다. n번째 계단에 올라오기 위해서는 두 가지 경우가 있다. n-1번째 계단으로 오는 경우와 n-2번째 계단으로 오는 경우이다. n-1번째 계단으로 오는 경우에는 dp[n] = dp[n-3] + stairs[n-1] + stairs[n] 이다. n-2번째 계단으로 오는 경우에는 dp[n] = dp..
jyjyjy25
'분류 전체보기' 카테고리의 글 목록 (10 Page)