전체 글220 [GCP] SSH로 GCP 접속하는 방법 🔽브라우저에서 접속도 가능합니다. https://cloud.google.com/compute/docs/ssh-in-browser?hl=ko 브라우저에서 SSH를 통해 연결 | Compute Engine Documentation | Google CloudimageFamilyViewscloud.google.com GCP에서 인스턴스를 생성 후 인스턴스에 접속하는 방법으론 두가지가 있습니다. 브라우저에서 직접 접속하는 방식이랑 터미널에서 SSH로 연결하는 방법이 있습니다. 본 포스트에선 SSH로 연결하는 방법을 보여드리고자 합니다. 우선 인스턴스부터 생성해야합니다. 인스턴스 생성은 다음 게시물에 정리해두었습니다. [GCP] VM 인스턴스 생성 및 초기 설정본 포스팅은 GCP(Google C.. 2025. 9. 26. [서버구축실습] 걷담 프로젝트 회고록 걷담 프로젝트 회고록 본 포스트는 3학년 1학기 전공 수업인 서버 구축 및 실습 수업에서 진행한 걷담 프로젝트 회고록입니다. 1. 프로젝트 배경과 목표 걷기 담기 좋은 도시를 담다, 걷담 기존 지도 서비스는 특정 장소 검색 및 경로 안내에 집중되어 있었습니다. 그러나 저희 팀은 ‘걷는 경험 자체’를 공유하는 서비스에 주목했습니다. 단일 장소 중심이 아닌, 사용자가 직접 만든 루트를 공유하고, 북마크·리뷰·별점 평가를 통해 함께 걷는 경험을 확장할 수 있는 플랫폼 을 만들고자 걷담 프로젝트를 개발하게 되었습니다. 2. 주요 기능 소개 3. 기술적 도전과 설계 1. ERD 설계 cloud erd에서 설계를 진행했습니다. 초기 erd에서 수정된 다음 나온 .. 2025. 9. 26. [UMC] 1주차 미션 어떤 Query를 작성해야 할까? 🔥 시니어 미션 1. 미션 1(내가 진행중, 진행 완료한 미션 모아서 보는 쿼리(페이징 포함))에서 정렬 기준을 1순위는 포인트로 2순위는 최신순으로 하여 Cursor기반 페이지네이션을 구현하기2. 다양한 트랜젝션 상태와, 트랜젝션 전파에 대해서 조사해보기 3. 함수 기반 인덱스와 복합 인덱스에 대해서 조사해보기 ⭐미션 1 (내가 진행중, 진행 완료한 미션 모아서 보는 쿼리(페이징 포함))에서 정렬 기준을 1순위는 포인트로 2순위는 최신순으로 하여 Cursor기반 페이지네이션을 구현하기 SELECT um.id AS user_mission_id, m.reward_point, m.title AS mission_title, m.cost, s.name AS store_nam.. 2025. 9. 25. [JAVA] 자바 코딩 테스트 문법 정리 코테 풀 때마다 계속 까먹어서 이번 기회에 정리하고자 합니다. 0. import 자바에서 기본적으로 많이 사용하는 패키지. 미리 선언해두고 들어가면 편합니다. import java.io.*; // 입출력 관련 (BufferedReader, InputStream 등)import java.util.*; // 컬렉션, Scanner, Arrays, List, Map, Set 등 1. String String str = "hello";// 길이str.length(); // 5// 특정 문자str.charAt(1); // 'e'// 부분 문자열str.substring(1, 4); // "ell"// 찾기str.indexOf("l"); .. 2025. 9. 25. [알고리즘] 문자 및 숫자 알파벳 변환 정리 가끔씩 자바 코테 문제에서 알파벳에서 숫자를 빼고 숫자에서 알파벳을 빼는 로직이 있는데, 매번 헷갈려서 이번 기회에 정리해두고자 한다. 우선 이 로직을 이해하기 위해선 아스키 코드에 대한 이해가 필요하다. 1. 아스키 코드란? 아스키 코드(ASCII)는 문자를 숫자로 표현하기 위한 컴퓨터 표준 인코딩 방식이다. 즉 문자(Character)를 컴퓨터가 이해할 수 있도록 숫자 값으로 매핑한 표준이라고 생각하면 된다. 우리가 자주 사용하는 대문자 A 같은 경우는 65, 소문자 a 같은 경우는 97로 매핑된다. 또한 문자에서 0 같은 경우엔 숫자 48로 매핑된다. 이러한 이러한 문자 → 숫자 매핑 규칙 덕분에, 우리는 문자를 숫자처럼 연산할 수 있다. 2. 숫자 문자 ↔ 정수 변환 ⭐ 1. 숫.. 2025. 9. 25. [백준] 10988번 팰린드롬 - JAVA ✍️풀이방식 문자열을 비교하는 방식 즉 charAt() 활용 문제이다. charAt()은 문자열(String)에서 특정 위치의 문자(char)를 꺼내는 메서드 문자 = 문자열.charAt(인덱스); import java.util.*;import java.io.*; public class Main { public static void main(String[] args) throws IOException { // 입력을 받기 위한 BufferedReader 생성 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String word = br.readLine(); // 문자.. 2025. 9. 23. [백준] 2178번 미로 탐색하기 - JAVA ✍️풀이방식 1. 문제 분석 미로의 각 칸에 들어 있는 숫자 중 1은 이동할 수 있는 칸, 0은 이동할 수 없는 칸. 한 칸에서 다른 칸으로 이동할 때는 서로 인접한 칸으로만 이동할 수 있다. 이동한 칸을 셀 때는 시작 위치와 도착 위치를 포함한다. 즉 (1,1)에서 (4,6)으로 이동하려면 총 15칸을 지나가야한다. 2. 풀이 과정 현재 N,M의 범위가 2이상 100이하로 작기 때문에 시간 복잡도는 따로 고려하지 않아도 된다. 지나야하는 칸 수의 최솟값을 찾는 것은 완전 탐색을 진행하며 몇 번째 깊이에서 원하는 값을 찾을 수 있는지를 구하는 것과 동일. 따라서 BFS를 사용해 최초로 도달했을 때 깊이를 출력하면 문제를 해결할 수 있다. 🖥️문제풀이 방향 벡터 정.. 2025. 9. 16. [알고리즘] BFS 너비 우선 탐색 ✏️해당 포스트는 인프런 알고리즘 코딩테스트 핵심이론 강의를 토대로 정리한 내용입니다. ⭐너비 우선 탐색 (BFS) 이란? 너비 우선 탐색도 그래프를 완전 탐색하는 방법 중 하나로 시작 노드에서 출발해 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘이다. 그래프 완전 탐색이라는 점은 DFS와 같다. 특징은 FIFO 탐색(선입선출 방식)을 하며 Queue 자료구조를 이용한다. ⭐DFS와의 차이 더보기 DFS (깊이 우선 탐색)한 경로를 끝까지 파고들었다가 더 이상 못 가면 되돌아와서 다른 경로를 탐색즉, 깊게 → 깊게 → 끝까지 간 다음 백트래킹주로 스택(Stack) 구조(또는 재귀 호출)로 구현 미로에서 한 길을 끝까지 들어갔다가 막히면 뒤로 돌아와 다른 길 시도하는 .. 2025. 9. 16. [컴파일러] 3주차 Grammar Basic 보호되어 있는 글 입니다. 2025. 9. 16. [백준] 17136번 색종이 붙이기 - JAVA ✍️풀이방식 1. 문제 분석 1이 있는 칸에만 색종이를 붙여야 하고 칸에 딱 맞게 붙여야 하는 것. 각 종류의 색종이를 5개씩 가지고 있기 때문에 한 종류 마다 5개까지 사용할 수 있다. 즉 전체 색종이 개수는 25개이다. 색종이를 붙일수 있는 경우의 수를 백트래킹 알고리즘을 이용하여 구하면 된다. 지금까지 연습했던 문제들 중에 가장 난이도가 높은 문제였던 것 같다... 2. 풀이 과정 1. 색종이를 붙일 수 있는 1번째 위치를 찾는다. 2. 탐색 위치는 왼쪽 위에서 시작하여 오른쪽으로 이동하고, 오른쪽 끝에 도달하면 한 줄 아래로내려가서 다시 왼쪽부터 이동하는 방식으로 진행한다. (가지치기를 극대화 하기 위해서 큰 색종이부터 탐색한다) 3. 현재 선택한 위치에 가지고 있는 색종이.. 2025. 9. 15. [백준] 9663번 N-Queen 배치하기 - JAVA ✍️풀이방식 1. 문제 분석 N-queen은 전형적인 백트래킹으로 풀 수 있는 문제이다. 크기 N × N 체스판 위에 퀸 N개를 서로 공격하지 않게 놓는 문제. 체스에서 퀸은 가로, 세로, 대각선으로 움직일 수 있으므로 같은 행, 열, 대각선에는 퀸이 동시에 존재할 수 없음. 즉 같은 행에는 퀸이 1개만 존재할 수 있음. 모든 행에 퀸을 1개씩 배치해야 N개의 퀸이서로 공격하지 않도록 놓을 수 있다. 2. 풀이 과정 퀸을 한 행씩 배치하면서, 현재까지 놓은 퀸이 조건을 만족하지 않으면 즉시 가지치기(백트래킹) -> 탐색을 종료하고 이전 단계로 돌아간다. 마지막 행까지 퀸 배치 성공하면 경우의 수 +1, 백트래킹 전체를 종료하면 경우의 수를 출력한다. 맨 위 행부터 시작해 각 행마다 퀸을.. 2025. 9. 12. [백준] 15649번 N과 M - JAVA ✍️풀이방식 1. 문제 분석 1부터 N까지 자수 중에서 중복 없이 M개를 고른 수열또한 수열은 사전 순으로 증가하는 순서, 즉 오름차순으로 정렬하여서 출력해야한다. 현재 수열에서 추가할 수 있는 자연수를 탐색, 자연수가 기존 수열에서 이미 사용한 수라면 해당 수를 선택한 탐색은 진행하지 않고 이전 단계로 돌아간다(가지지치기) 수열의 길이가 M이 될 때 수열의 정보를 출력한다 . 2. 풀이 과정 일단 작은 수 부터 탐색하도록 기준을 잡으면 오름차순 조건을 자연스럽게 만족할 수 있다. 가지치기 기준은 이미 수열에 포함한 수(중복 허용 x) 이전 단계로 돌아가는 로직은 재귀 함수 형태로 탐색하면 자연스럽게 구현된다. 🖥️문제풀이 import java.io.*;import java.util.*.. 2025. 9. 11. [알고리즘] 백트래킹 (Backtracking) ✏️해당 포스트는 인프런 알고리즘 코딩테스트 핵심이론 강의를 토대로 정리한 내용입니다. ⭐백트래킹이란? 문제를 해결하는 탐색 기법을 말한다. 문제를 해결할 수 있는 모든 경로를 탐색하면서 선택한 경로가 유효하지 않거나 조건에 만족하는 해를 찾지 못할 경우, 이전 단계로 되돌아가 다른 경로를 시도하는 알고리즘 즉 다시 정리하자면, 해(정답)를 찾기 위해 모든 경우의 수를 탐색하되, 탐색 도중에 해가 될 수 없는 경우(불필요한 경로) 를 만나면 더 이상 진행하지 않고 되돌아가(backtrack) 다른 경로를 시도하는 탐색 기법. 구현 방식재귀 함수로 구현하는 경우가 많음. (DFS의 개념과 구현방식이 매우 유사, 다만 DFS는 모든 노드를 탐색하는 것을 목적으로 함) 가지치기(pruning)를 통해.. 2025. 9. 11. [컴파일러] Programming Language Basics 보호되어 있는 글 입니다. 2025. 9. 11. [백준] 11724번 연결 요소의 개수 - JAVA ✍️풀이방식 1. 문제 분석 1. 노드의 개수가 1000개 2. N 제곱이면 1000000, 백만 정도면 3초안에 충분히 풀린다. 3. 양 끝 점 u ,v 같은 엣지는 한번만 주어짐 -> 방향성이 없다 따라서 양쪽 인접리스트로 구현해야한다. 4.트리 완전 탐색 문제 따라서 DFS로 접근해야한다. 2. 현재 출력에선 첫째 줄에 연결 요소의 개수를 출력한다고 되어있다. 이는 실제 그래프가 몇 개로 나눠지는 지 즉몇개의 연결 요소로 구성되는 지 묻고 있다 예제 입력 1번에선 다음과 같이 나누어진다. 그림으로도 확인할 수 있다. 예제 입력 2번도 1번과 같이 확인할 수 있다. ⭐따라서 DFS가 끝날 때까지 탐색한 모든 노드의 집합을 하나의 연결 요소로 판단할 수 있다. .. 2025. 9. 10. [Java] 맵, 리스트 개념 정리 List순서가 있는 데이터 집합중복 허용인덱스로 요소 접근 (list.get(0))대표 구현체:ArrayList (가장 많이 사용)LinkedList List list = new ArrayList();list.add("A");list.add("B");list.add("A"); // 중복 가능System.out.println(list.get(0)); // "A"System.out.println(list); // [A, B, A] Map키(key)-값(value) 쌍으로 데이터 저장키는 중복 불가, 값은 중복 허용키로 값에 접근 (map.get("key1"))대표 구현체:HashMap (가장 많이 사용)LinkedHashMap, TreeMap Map map = new HashMap();map.put.. 2025. 9. 10. [SpringBoot] 스프링 컨테이너와 스프링 빈 🖊️ 본 포스트는 인프런 김영한 스프링 기본편을 보고 정리한 내용입니다. 스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의현재 평점 5.0점 수강생 48,207명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프www.inflearn.com 스프링 컨테이너 생성 //스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 스프링 컨테이너라고 하며 인터페이스다.스프링 컨테이너는 xml을 기반으로 만들 수 있.. 2025. 9. 10. [Google 문서]구글 문서에 코드 블럭 사용하기 수업 중에 구글 문서를 사용할 때가 있어서 그때마다 코드를 입력할 일이 많았습니다. 그래서 코드 입력 기능이 있을까 찾아보던 중에 코드 블럭 부가기능 설치하는 법을 발견했습니다. 1. Code Blocks 설치하기 1) 상단 메뉴에서 [확장 프로그램] > [ 부가 기능] > [부가 기능 설치하기] 순으로 선택합니다. 2) 그러면 부가 기능을 설치할 수 있는 마켓 플레이스로 이동합니다. 3) 그 후 Code Block를 검색한 후에 설치해줍니다. 2. Code Blocks 사용법 문서에서 코드 붙여넣기복사한 코드를 그대로 구글 문서에 붙여 넣습니다.부가 기능 실행상단 메뉴 → 확장 프로그램 → Code Blocks → Start 를 누르면 오른쪽 사이드바가 열립니다.언어와 테마 선택.. 2025. 9. 9. JAVA 설치 및 인텔리제이 설정하는 법 (window 기준) 이번에 데스크탑을 새로 사면서 인텔리제이랑 자바 설치를 새로 진행했습니다. 저는 window 환경에서 설치 진행했습니다. 1. Java 설치하기 저는 JAVA 17 버전을 설치했습니다. 방법 1: Adoptium (구 AdoptOpenJDK) 사용하는 방법 Adoptium 웹사이트에 접속하여 JDK 17 버전을 다운로드합니다.다운로드한 설치 파일을 실행하고, 설치를 완료합니다. 방법 2: Oracle JDK 사용하는 방법 Oracle JDK 17 다운로드 페이지에 접속하여 Windows 버전을 다운로드합니다.설치 파일을 실행하고, 안내에 따라 설치합니다.https://www.java.com/ko/download/help/download_options.html Java를 설치하는 방법은 무엇입니.. 2025. 9. 7. [SpringBoot]스프링 기본편 - 객체 지향 원리 적용 (2) 🖊️ 본 포스트는 인프런 김영한 스프링 기본편을 보고 정리한 내용입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의현재 평점 5.0점 수강생 48,140명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프www.inflearn.com 4. 스프링으로 전환하기 스프링에서의 IoC/DI 컨테이너ApplicationContext는 스프링의 대표적인 IoC/DI .. 2025. 9. 6. [SpringBoot]스프링 기본편 - 객체 지향 원리 적용 (1) 🖊️ 본 포스트는 인프런 김영한 스프링 기본편을 보고 정리한 내용입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8 스프링 핵심 원리 - 기본편| 김영한 - 인프런 강의현재 평점 5.0점 수강생 48,140명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다. 스프링 기본 기능, 스프www.inflearn.com 1. 새로운 할인 정책 적용과 문제점 할인 정책을 변경하려면 클라이언트인 OrderServiceImpl 코드를 고쳐야 한.. 2025. 9. 6. 이전 1 2 3 4 5 ··· 11 다음