전체 글21 http 라이브러리 개인 프로젝트를 진행하면서 외부 데이터 API를 호출해야 하는 경우가 생겼다.http 통신을 주고 받는 게 기본적으로 알고 있어야 하는 사항일 수 있지만, 기존 회사의 업무를 진행하면서 외부 API를 사용하는 경우가 거의 없어서 통신을 주고 받는 어떤 방법들이 있고 어떤 방법을 써야 하는지 몰랐다. 그래서 이번에 http 통신을 하게 해주는 여러 라이브러리들을 알아보고 프로젝트에 적용해보기로 하였다.1. HTTP 라이브러리 소개우선, 가장 오래 사용되어 온 HttpURLConnection부터 가장 직관적이고 간편한 OpenFeign까지 5가지에 대해서 설명하겠다.HttpURLConnectionHttpClientRestTemplateWebClientOpenFeign각 방법에 대해 설명하기에 앞서 모든 요청.. 2024. 8. 15. 소셜 로그인 (카카오 편) + 구글 이번에 새롭게 시작한 프로젝트의 로그인 기능은 소셜 로그인 기능(네이버/카카오)을 이용해 보기로 하였다.1. 왜 소셜 로그인을 사용하는가?별도의 아이디나 비밀번호를 기억할 필요 없이 간편하고 안전하게 해당 서비스에 가입할 수 있어, 가입이 귀찮거나 가입한 계정이 생각나지 않아 서비스를 이탈하는 사용자를 잡을 수 있다. 또한, 개발자에게 사용자의 ID 및 비밀번호를 입력받고 검증하는 과정을 직접 구현하지 않고도 사용자에 대한 인증과 인가를 간편하게 처리할 수 있도록 도와준다.2. 카카오 API 로그인2.1 카카오 API 로그인이란?카카오 API를 이용한 로그인은 아래와 같이 진행된다. 2.2 애플리케이션 등록먼저 사용할 API 등록을 먼저 해주어야 한다. 내 애플리케이션-애플리케이션 추가하기 버튼을 눌러 .. 2024. 8. 14. 소셜 로그인 (네이버 편) 이번에 새롭게 시작한 프로젝트의 로그인 기능은 소셜 로그인 기능(네이버/카카오)을 이용해 보기로 하였다.1. 왜 소셜 로그인을 사용하는가?별도의 아이디나 비밀번호를 기억할 필요 없이 간편하고 안전하게 해당 서비스에 가입할 수 있어, 가입이 귀찮거나 가입한 계정이 생각나지 않아 서비스를 이탈하는 사용자를 잡을 수 있다. 또한, 개발자에게 사용자의 ID 및 비밀번호를 입력받고 검증하는 과정을 직접 구현하지 않고도 사용자에 대한 인증과 인가를 간편하게 처리할 수 있도록 도와준다.2. 네이버 API 로그인2.1 네이버 API 로그인이란?2.2 애플리케이션 등록먼저 사용할 API 등록을 먼저 해주어야 한다. Application-애플리케이션 등록 메뉴에서 본인이 사용할 정보들을 입력한다.서비스명과 해당 서비스에서.. 2024. 8. 13. 동시성 처리는 어떻게 하는게 좋을까? 타임딜을 주제로 하는 개인 프로젝트 진행 중에 동시성 처리에 대한 공부가 필요해서, 이번에 동시성 처리에 대한 여러가지 해결 방법에 대해 알아보기로 하였다.1. 문제점우선, 내 프로젝트에서는 일정 기간 동안 할인된 가격으로 상품을 주문할 수 있는데, 주문자가 한꺼번에 몰리는 상황에서 재고의 갯수가 정확하게 지켜지고 있는지가 문제였다. 일반적으로는 당연히 지켜지고 있겠지라고 생각하지만, 실제로 요청이 한꺼번에 몰릴 때는 문제가 발생한다. 서로 다른 Thread에서 재고(STOCK)에 접근할 때, 이미 다른 Thread가 선점 중이라며 race condition(경쟁상태)가 된다. 서로 다른 Thread에서 같은 메모리를 공유하면서 원하지 않는 결과가 나오고 이를 위해 우리는 동시성 처리를 필수로 해주어야 .. 2024. 8. 12. Transaction 이야기 1. Transaction이란?트랜잭션(Transaction)은 작업의 완전성을 보장해주는 것이다. 즉 논리적인 작업 셋을 모두 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상(Partial Update)이 발생하지 않게 만들어주는 기능이다.2. Transaction 특징원자성 (Atomicity)All or Nothing트랜잭션의 연산은 데이터베이스에 모두 반영되거나 전혀 반영되지 않아야 한다.트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다.일관성 (Consistency)트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스를 제공해야 한다.독립성 (.. 2024. 8. 11. 페이징을 처리하는 2가지 방법 페이징 처리를 할 수 있는 방법은 크게 2가지로 나누어 생각할 수 있다.offset과 no-offset으로 구분할 수 있으며, 2가지 방식의 구현 방식과 차이점에 대해 알아보도록 하자.1. offset먼저, 일반적으로 사용되는 페이징 처리 방식인 offset 방식이다. limit (출력 row 수) offset (시작 row)와 같이 표현할 수 있으며, 아래와 같이 페이지 번호를 출력하여 페이징 처리하는 방식이다.해당 페이지 번호(offset)와 이전, 다음 버튼을 통해 다음 목록을 조회할 수 있다. 실제 쿼리를 통해 좀 더 자세히 알아보자.SELECT * FROM memberORDER BY idLIMIT 5 OFFSET 0; 쿼리의 실행 계획을 확인하면 알 수 있듯이, offset과 limit을 이용한.. 2024. 8. 10. 이전 1 2 3 4 다음