[시스템 아키텍처] 동기 vs 비동기 ➕ 블록 vs 논블록
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 동기 (Synchronous)동기란 데이터의 요청과 결과가 동시에 이루어지는 것을 의미합니다.예를 들어, 사용자가 서버에 데이터를 요청하면, 그 요청에 대한 응답이 있을 때까지 사용자는 다른 작업을 수행할 수 없습니다.✅ 특징 즉각적인 응답 요구: 사용자가 요청을 보낸 후, 즉각적으로 응답이 돌아오기를 기대합니다.사용자 경험: 대기 시간이 길어지면 사용자 경험이 저하될 수 있습니다. 사용자는 응답을 기다리는 동안 아무것도 할 수 없기 때문에, 이 과정에서 피로감이 느껴질 수 있습니다.동기 방식은 일반적으로 간단한 요청-응답 패턴에 적합하며, 작은 데이터 전송이나 상태가 중요한 작업에서 유용합니다. ⭐ 비동기 (Asynchronous)비동기는 요청과 응답이 동시에 이루어지지 않는 것을 의미합니다.사용자..
[프로그래머스] 타겟 넘버 | DFS, BFS | Level.2 | JAVA
·
코딩 테스트 일지 📒
📌 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 🌞 정답 코드class Solution { int answer = 0, sum = 0; public void dfs(int[] numbers, int target, int index, int sum){ index++; if (index==numbers.length){ if(sum==target) answer++; return; } else { dfs(numbers, ..
[프로그래머스] 네트워크 | DFS, BFS | Level.3 | JAVA
·
코딩 테스트 일지 📒
📌 문제  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📒 정답 코드class Solution { public void dfs(int node, int[][] computers, boolean[] visit){ visit[node] = true; for (int i = 0; i ⭐ 코드 설명✅ 방문 기록DFS는 특정 노드를 시작으로 연결된 모든 노드를 탐색합니다. 여기서 visit 배열은 각 노드가 이미 방문되었는지를 추적합니다.1️⃣ 메인 반복문에서의 체크solution 메서드에서 if (!visit..
[백준] 2751 수 정렬하기 2 | 정렬 | 실버 Ⅴ | JAVA 💡계수 정렬
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/2751 ❌ 시간 초과 코드import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); int..
[DB] JPA와 ORM: 데이터베이스와의 스마트한 연결
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ ORM (Object-Relational Mapping)란?ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어에서 객체와 관계형 데이터베이스 간의 매핑을 자동으로 처리해주는 기술입니다.즉, 데이터베이스의 테이블과 프로그래밍 언어의 객체를 연결해 주는 역할을 합니다.이 기술을 사용하면 SQL 쿼리를 직접 작성하지 않고도 객체를 통해 데이터베이스와 상호작용할 수 있습니다예를들어 아래와 같은 users 테이블이 있다고 생각해봅시다.IDName1SungOne2SungTwoORM을 사용하면, 이 데이터를 아래와 같이 객체로 쉽게 표현할 수 있습니다.public class User { private Long id; private String name;}이렇게 객체로 표..
[DB] Spring에서의 데이터베이스 처리: JDBC vs JPA
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ JDBC란?JDBC(Java Database Connectivity)는 Java에서 데이터베이스에 접근하기 위한 API입니다. 즉, Java 프로그램이 데이터베이스와 소통할 수 있게 해주는 도구입니다. JDBC를 사용하면 SQL 쿼리를 직접 작성하여 데이터베이스에 접근하고, 데이터를 가져오거나 수정할 수 있습니다.import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class JdbcExample { public static void main(String[] args) { String url = "jdbc:mysql://localh..
[백준] 1181 단어 정렬 | 문자열, 정렬 | 실버 Ⅴ | JAVA 💡Arrays.sort
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/1181 ✔️ 정답 코드import java.io.*;import java.util.*;public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new StringBuilder(); ..
[DB] 데이터베이스와의 상호작용을 쉽게 만드는 DAO 패턴 (+ DTO까지!)
·
기술 지식 쌓아가기 📚/Backend 🍔
🚩 DAO (Data Access Object) 패턴 소개소프트웨어 개발에서 데이터베이스와의 상호작용은 매우 중요합니다.그러나 데이터베이스 접근 로직이 코드에 직접 삽입되면, 유지보수와 테스트가 어려워질 수 있습니다.데이터베이스에 저장된 정보를 쉽게 관리하고 접근하기 위해, DAO (Data Access Object) 패턴이 사용됩니다.이 글에서는 DAO 패턴의 개념을 쉽게 설명하고, 실제 예시를 통해 이해를 돕겠습니다 ⭐ DAO 패턴의 개념DAO 패턴은 데이터를 저장하고 가져오는 과정에서 발생하는 복잡성을 줄여주는 설계 패턴입니다.이를 위해 다음과 같은 역할을 합니다. 추상화: 데이터베이스와의 상호작용을 단순화합니다. 비즈니스 로직(애플리케이션의 주요 기능)은 데이터가 어떻게 저장되고 가져오는지에 대..
[Framework] 웹 개발 프레임워크 비교: Spring Boot와 Node.js의 장단점
·
기술 지식 쌓아가기 📚/Backend 🍔
웹 애플리케이션을 개발할 때, 올바른 프레임워크를 선택하는 것은 매우 중요합니다.Spring Boot와 Node.js는 각각 장점과 단점이 있는 인기 있는 백엔드 프레임워크입니다. 이 글에서는 두 프레임워크의 주요 차이점과 장단점을 간단히 설명하겠습니다. ⭐ 기본 개념Spring Boot: Java 기반의 프레임워크로, 복잡한 설정 없이 신속하게 애플리케이션을 개발할 수 있게 해줍니다. Java 생태계의 강력한 기능을 이용할 수 있습니다.Node.js: JavaScript 런타임으로, 서버 측에서 JavaScript를 실행할 수 있게 해줍니다. 비동기 이벤트 기반 프로그래밍 모델로 높은 성능을 제공합니다.✅ 성능Spring Boot:장점: Java의 성능을 활용하여 복잡한 비즈니스 로직을 효율적으로 처리..
[백준] 2606 바이러스 | 그래프, DFS, BFS | 실버 Ⅲ | JAVA 💡DFS
·
코딩 테스트 일지 📒
📌 문제https://www.acmicpc.net/problem/2606 ⭐ DFS(깊이 우선 탐색)란?DFS는 그래프의 탐색 방법 중 하나로, 한 노드를 방문한 후 그 노드와 연결된 노드를 깊이 있게 탐색하는 방식입니다.즉, 현재 노드에서 갈 수 있는 경로를 따라 최대한 깊이 들어간 후, 더 이상 갈 수 없게 되면 다시 돌아와서 다른 경로를 탐색하는 방식입니다.이 방법은 재귀를 통해 구현할 수 있으며, 그래프의 연결 구조를 탐색하는 데 매우 유용합니다. ⭐ 전체 코드import java.io.*;import java.util.*;public class Main{ static boolean[][] a; static int n; static boolean[] b; static..
코양이🤍
'분류 전체보기' 카테고리의 글 목록 (2 Page)