전체 글 (12) 썸네일형 리스트형 [백엔드]비동기 처리와 메시지 큐 이해하기 1. 비동기 프로그래밍이란?1) 동기 vs 비동기 처리 방식백엔드 애플리케이션에서 중요한 개념 중 하나가 동기(Synchronous)와 비동기(Asynchronous) 처리입니다.동기(Synchronous): 요청을 보내면 응답을 받을 때까지 기다리는 방식비동기(Asynchronous): 요청을 보낸 후 응답을 기다리지 않고 다른 작업을 수행하는 방식2) 웹 애플리케이션에서 비동기 처리가 필요한 이유비동기 처리는 서버의 성능을 최적화하고 응답 속도를 높이는 데 도움이 됩니다. 예를 들어, 다음과 같은 경우 비동기 처리가 필요합니다:대용량 데이터 처리외부 API 호출파일 업로드 및 다운로드이메일 발송2. 스프링에서 비동기 처리Spring Boot에서는 @Async 어노테이션을 사용하여 손쉽게 비동기 처리를.. [백엔드]JWT 이해하기 1. 인증과 인가 개념1) 인증(Authentication)과 인가(Authorization)웹 애플리케이션에서는 보안이 중요한 요소이며, 사용자의 신원을 확인하고 접근 권한을 부여하는 과정이 필요합니다.인증 (Authentication): 사용자가 누구인지 확인하는 과정인가 (Authorization): 사용자가 특정 리소스에 접근할 수 있는 권한을 갖고 있는지 확인하는 과정2) 기존의 세션 기반 인증 방식의 한계기존의 웹 애플리케이션에서는 서버가 사용자 정보를 저장하고 관리하는 세션 기반 인증을 사용했습니다. 하지만, 다음과 같은 단점이 존재합니다.확장성 문제: 사용자가 많아질수록 서버에서 세션을 관리하는 부담 증가분산 시스템에서의 어려움: 여러 서버에서 동일한 세션 정보를 유지하기 어려움쿠키 사용의.. [백엔드]JPA 이해하기 1. JPA란?JPA의 개념JPA(Java Persistence API)는 자바 애플리케이션에서 관계형 데이터베이스를 쉽게 다룰 수 있도록 지원하는 ORM(Object Relational Mapping) 기술입니다. JPA를 활용하면 SQL을 직접 작성하지 않고 객체 지향적으로 데이터를 조작할 수 있습니다.JPA의 등장 배경전통적인 데이터베이스 접근 방식인 JDBC는 SQL을 직접 작성해야 하고, 반복적인 코드가 많아 유지보수가 어려웠습니다. 이를 해결하기 위해 MyBatis와 같은 SQL 매퍼가 등장했지만, 여전히 SQL 작성이 필요했습니다. JPA는 객체와 데이터베이스 간의 매핑을 자동으로 처리해 주어 개발자의 생산성을 높여줍니다.2. JPA의 기본 개념1) Entity와 EntityManagerEn.. [백엔드]RESTful API 이해하기 1. REST란?REST의 개념REST(Representational State Transfer)는 웹에서 데이터를 교환하는 아키텍처 스타일로, 리소스(Resource)를 정의하고 해당 리소스를 접근하는 방식을 규정합니다.REST는 클라이언트와 서버 간의 통신을 간결하게 만들며, 웹의 기본 원칙을 준수하면서 API 설계를 단순화하는 방식입니다.RESTful API란?RESTful API는 REST의 원칙을 따르는 API를 의미합니다. HTTP 프로토콜을 기반으로 동작하며, 클라이언트가 서버의 특정 리소스를 요청하고 응답을 받는 구조를 가집니다.2. RESTful API 설계 원칙RESTful API를 설계할 때 따르는 기본 원칙은 다음과 같습니다.1) 리소스 중심의 URL 설계RESTful API는 리소.. [백엔드]SQL 이해하기 Structured Query Language: SQL데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어. 에스큐엘, 혹은 시퀄이라고 읽는다.[2]로고는 SQL을 사용하는 회사별로 색상을 다르게 해 표현한다. 그러나 심볼 자체는 두꺼운 원반을 원통 모양으로 쌓은 모양이 공용으로 쓰인다. 여기서 두꺼운 원반은 하드 디스크의 플래터를 의미한다. 특징이 직관적인 언어는 어느 데이터베이스에서나 기본으로 제공하기 때문에 배워두면 여러 곳에서 쓸데가 많다. 다만, NoSQL 계열에서는 SQL 문을 사용하지 않는다.그러나 DBMS[3] 벤더[4]에 따라 사용하는 SQL에는 다소 차이가 있다. 그래서 ANSI SQL이라고 하는 표준 SQL 구문이 있으나 DBMS 시장을 독식하고 있는 오라클.. [백엔드]자바 스프링부트 이해하기 == 상세 ==로드 존슨(Rod Johnson)이 2002년에 출판한 저서 Expert One-on-One J2EE Design and Development에서 선보인 소스 코드를 시작으로 점점 발전하게 되었다. 2003년 6월에 최초로 공개되었다. 스프링 프레임워크 프로젝트를 간편하게 설정할 수 있도록 도와주는 서브 프로젝트 스프링 부트가 있으며, 현재는 스프링 부트 위주로 기능이 추가되고 있다.'스프링'이라는 이름의 유래는 이전에 Java EE(엔터프라이즈 에디션)의 스펙을 구현한 EJB가 기술의 복잡도가 증가해서 성능이 느렸던 것을 탈피하여, EJB 시절을 '겨울'에 빗대어 겨울 후의 '봄'으로 새로운 시작한다는 것을 의미하는 스프링(봄)이 되었다. --그러나 아직 춥다-- [[Java Virtua.. [알고리즘] 그리디 알고리즘(탐욕법, Greedy Algorithm) 이해하기 [ 목차 ]1. 정의 2. 그리디 알고리즘 작동 방식(그림 예시) 3. 그리디 알고리즘 채택의 조건 4. 코드구현 예제풀이 : 행렬 5. 정리▶그리디 알고리즘(탐욕법, Greedy Algorithm)최적값 탐색 알고리즘말 그대로 탐욕적 알고리즘, 최적값을 탐색하는 상황에서 당장 눈앞에 주어진 선택지 중 가장 최적의 값을 선택하는 알고리즘DP가 단순한 문제 상황에서 지나치게 많은 수행시간을 가지는 단점을 해결부분문제의 최적값이 전체문제의 최적값이 아닐 수 있음 ◈ 그리디 알고리즘 작동 방식(그림 예시)위 그림의 트리에서 최댓값 탐색을 한다고 할 때, 실제 최적값은 2 - 10 선택을 통한 12이지만, 그리디 알고리즘은 각 단계별 근시안적인 선택을 하기 때문에, 5 - 6 선택으로 11의 값을 도출한다. .. [알고리즘] 다익스트라 (데이크스트라, Dijkstra) 이해하기 [ 목차 ]1. 정의2. 다익스트라가 DP를 사용하는 이유 3. 코드 구현 예제 풀이 : 최소비용 구하기 4. 다익스트라의 탐색 방법 5. 정리▶ 다익스트라 (데이크스트라, Dijkstra)최단경로 탐색 알고리즘인공위성 GPS 소프트웨어에서 사용한다. (최단경로 네비게이션)특정 정점에서 모든 다른 정점까지 가는 최단경로를 탐색위 작동 방식 때문에 이전에 알아본 DP를 이용한 탐색이 선호됨 (다이나믹 프로그래밍) ◈ 다익스트라가 DP를 사용하는 이유최단거리는 최단거리들의 모임이기 때문이다.즉, 이전까지의 최단거리 정보를 그대로 사용한다. ( = DP 배열에 저장한다) 한 정점에서 다른 정점으로의 최단거리는 탐색을 계속 진행할 때마다 새로 갱신된다.이해를 돕기 위해 사진을 가져왔다. 알파벳은 정점이고, 숫자.. 이전 1 2 다음