전체 글220 [알고리즘] DFS 깊이 우선 탐색 ✏️해당 포스트는 인프런 알고리즘 코딩테스트 핵심이론 강의를 토대로 정리한 내용입니다. 탐색엔 깊이 우선 탐색, 너비 우선 탐색, 이진 탐색으로 크게 나누어진다. 이 중에서 DFS는 모든 코딩 테스트에서 다루는 알고리즘 영역 중에 가장 많이 사용한다고 한다.예전 자료구조랑 고급자료구조 시간에 열심히 배웠던 게 생각이 나는데 (그때도 시험 문제에 단골로 출제되었다) 오늘은 한번 제대로 정리하고 넘어가고자 한다. ⭐깊이 우선 탐색 (DFS) 이란? 깊이 우선 탐색은 그래프 완전 탐색 기법 중 하나다. (완전 탐색은 그래프에 있는 모든 노드를 탐색하는 것)그래프의 시작 노드에서 출발하여 탐색할 한 쪽 분기를 정하여 최대 깊이까지 탐색 후 다른 쪽 분기로 이동하여 다시탐색을 수행하는 알고리즘이다. 보통.. 2025. 7. 30. [트러블슈팅] Git merge conflict 처리 방법 깃 병합할 때 충돌 나는 거 정리 🚨 발생한 문제와 상황다음과 같이 깃 pull 받고 난 다음 충돌이 발생할 때 Auto-merging src/components/ExampleComponent.jsxCONFLICT (content): Merge conflict in src/components/ExampleComponent.jsxAutomatic merge failed; fix conflicts and then commit the result. 🤔 문제의 원인 파악하기로컬에서 수정한 파일과 원격의 변경사항이 충돌동일한 파일의 동일한 줄을 양측에서 수정하여 Git이 자동 병합 불가할 때 정리하자면 지금 내가 작업한 거랑 깃허브에 있는 거랑 코드가 다를 때 발생한다... 💡해결 방법 .. 2025. 7. 28. [Draconist] HTTPS 설정하기 ✏️본 포스트는 HTTPS 설정하는 과정을 기록한 것입니다. 또한 본 글은 다음 포스트를 참고하였습니다! https://turtle0204.tistory.com/entry/08-https-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0-Draconist 09. https 도메인 연결하기 Draconist이번 프로젝트는 react native로 애플리케이션을 만드는 것이었기 때문에 https 설정이 필요했습니다.제일 처음 찾아봤던 방법은 aws route53을 이용하는 것이었습니다.제가 진행했던 프로젝트는 규모turtle0204.tistory.com ⭐AWS route 53 도메인 설정 일단 HTTPS 설정을 하기 위해선 AWS에서.. 2025. 7. 27. [Draconist] Docker 및 github action CI/CD하기 본 포스트는 Docker와 github action으로 CI/CD하는 과정을 기록한 것 입니다. 또한 본 글은 다음 포스트를 참고하였습니다! https://turtle0204.tistory.com/entry/08-docker%EC%99%80-github-action%EC%9C%BC%EB%A1%9C-CICD%ED%95%98%EA%B8%B0 08. docker와 github action으로 CI/CD하기1. EC2에서 Docker설정하기1. 우분투 시스템 패키지 업데이트sudo apt-get update2. 필요한 패키지 설치sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common3... 2025. 7. 24. [Draconist] Docker 이미지 빌드하기 ⭐ Spring Boot 프로젝트 Docker 배포 절차 1) bootjar 파일 만들기 ./gradlew bootJarbuild/libs/ 하위에 .jar 파일 생성됨 2) 도커 파일 작성하기 도커 파일 생성 후 다음과 같이 적어줍니다. FROM openjdk:17ARG JAR_FILE=build/libs/*.jarCOPY ${JAR_FILE} app.jarENTRYPOINT ["java", "-jar", "/app.jar"] 3) 도커 빌드하기 다음과 같이 적어줍니다. docker build -t goodluckynewsdocker . ⚠️ 마지막의 . 은 현재 디렉토리(컨텍스트)를 의미합니다 따라서 빠뜨리면 에러가 발생합니다. 4) 이미지 태그 latest로 설정 doc.. 2025. 7. 23. [시스템 프로그래밍] 프로그래밍 과제 기록 보호되어 있는 글 입니다. 2025. 7. 19. [GCP] Google Maps Directions API key 발급 1. Google Cloud Console 접속👉 https://console.cloud.google.com/ Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 2. 프로젝트 생성 (또는 기존 프로젝트 선택)오른쪽 상단의 프로젝트 드롭다운 클릭"프로젝트 만들기" 클릭이름 정하고 생성 3. Directions API 활성화왼쪽 메뉴에서 “API 및 서비스 > 라이브러리” 이동검색창에 Directions API 입력“Directions API” 클릭 > 사용 버튼 클릭(필요하면 Maps JavaScript API도 함께 사용) 4. API 키 발급“API 및 서비스 > 사용자 인증 정보” 메뉴로 이동상단의 “사용자 인증 정보 만들기” > AP.. 2025. 7. 19. [Github] 깃 브랜치 전략 및 커밋 컨벤션 정리 프로젝트를 진행할 때 깃 브랜치 전략이랑 커밋 컨벤션을 readme로 올려놓는 게 협업하기가 편합니다.그래서 이번 기회에 정리해보고자 글을 작성하게 되었습니다. 🌿 Git Branch 전략 🔹 브랜치 종류 및 규칙 main배포용항상 안정적인 상태 유지. 배포 시 이 브랜치 기준으로 진행. 직접 작업 금지.develop개발 통합각 기능 브랜치를 이 브랜치로 merge. 팀원 PR 후 코드리뷰 → merge 권장. 리뷰 지연 시 자기 책임 하에 직접 merge 가능.feature/{이슈번호}-{설명}기능 개발새로운 기능 개발 시 사용. ex) feature/#12-login-apifix/{이슈번호}-{설명}버그 수정발견된 버그 수정용 브랜치.hotfix/{이슈번호}-{설명}긴급 수정배포 후 발생한.. 2025. 7. 19. [Draconist] EC2 설정 및 RDS 연결 Draconist에서 진행한 프로젝트 희소식 배포 및 CICD 설정을 기록해보았습니다. (나중에 배포 과정 기억 안 날 때 참고할 수 있게) ⭐위의 블로그를 참고하여 실습 진행하였습니다! https://turtle0204.tistory.com/entry/springboot-With-React-NATIVE-project-04-EC2%EB%B6%80%ED%84%B0-RDS-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0 04. EC2부터 RDS 연결하기 (SpringBoot)-DRACONIST학습 목표)1) EC2 인스턴스를 생성하고 초기 설정하기2) 탄력적 IP 연결하기3) RDS 인스턴스를 생성하고 초기 설정하기4) 내 프로젝트와 RDS 연결하기 이번글에서는 나의 Spring Boot .. 2025. 7. 19. [Github] Git Issue 템플릿 & PR 템플릿 설정하기 ✏️ 매번 까먹어서 기록해두는 깃 이슈, 풀리퀘스트 템플릿 설정 1. 이슈(Issue) 템플릿 생성 ⭐ 이슈 템플릿 생성 방법 레포지토리 > Settings > General > Issues 하위의 Set up templates 클릭한다. Preview and edit 버튼 클릭해서 미리보기 및 필요에 따라 수정 후 Propose changes 버튼 클릭 🕷️ 버그 리포트 이슈 ## 어떤 버그인가요?> 어떤 버그인지 간결하게 설명해주세요## 어떤 상황에서 발생한 버그인가요?> (가능하면) Given-When-Then 형식으로 서술해주세요## 예상 결과> 예상했던 정상적인 결과가 어떤 것이었는지 설명해주세요## 참고할만한 자료(선택) ➕ 기능 추가 리포트 이슈 ## 어떤 기능.. 2025. 7. 19. [인공지능응용] 강아지 감정 분석 puppysense 프로젝트 회고록 🐶 PuppySense 프로젝트 회고록 이번 1학기 전공 수업인 인공지능응용에서 AI 모델 학습과 기술 구현을 목표로 한 팀 프로젝트를 진행했다. EfficientNet 기반 모델 학습과 백엔드 서버 구축을 맡아 프로젝트의 핵심 기능을 구현했다. 우리팀은 모델을 학습 시킨 뒤 서버에 학습 시킨 모델을 삽입하여 웹 사이트에서 활용할 수 있게 했다. 1. 프로젝트 배경과 목표 반려견의 감정을 이해하고 보호자와의 교감을 증진하기 위해 강아지의 표정과 행동을 분석하는 AI 웹 서비스 PuppySense를 기획했다. 기존 서비스는 이미지 기반 분석에 그치거나 ResNet, MobileNetV2 같은 모델을 사용해 성능과 경량성 모두 한계가 있었다. 이를 보완하기 위해 EfficientNetB4 기반의 경량 .. 2025. 7. 2. 티스토리에 노션 글 쉽게 올리는 법 계속 까먹어서 기록해두기... https://app.super.so/ Super Appapp.super.so 이 앱 들어가서 노션 배포한 공유 링크 넣기배포된 사이트에서 복사해서 티스토리에 붙여넣고 글 다듬기 2025. 6. 29. [소프트웨어분석 및 설계] UP Modeling 기법 SW 개발 방법론의 timeline⭐소프트웨어 개발 방법론은 소프트웨어 개발 과정을 구조화하고 통제하기 위한 프레임워크이다 모델링언어–4 Layers 계층 (Layer)설명 (Description)예시 (Example)meta-metamodel메타모델을 정의하기 위한 언어를 정의하는 계층. 메타모델링 아키텍처의 기반 구조 제공MetaClass, MetaAttribute, MetaOperationmetamodel메타-메타모델의 인스턴스. 모델을 정의하는 언어를 명세Class, Attribute, Operation, Component // 모델을 정의하기 위함 model메타모델의 인스턴스. 특정 정보 도메인을 설명하는 언어를 정의StockShare, askPrice, sellLimitOrder, StockQ.. 2025. 6. 29. [소프트웨어분석 및 설계] UML과 OOP 구현의 고려사항모델과 구현 언어 간 개념의 불일치모델의 분리된 뷰의 통합 구현의 효율성 문제 UML의 필요성UML은 소프트웨어 개념을 다이어그램으로 표기하기 위한 시각적인 기법(표기법)UML의 용도 - 문제 도메인 ,설계 제안, 구현에 관한 다이어그램을 그릴 때 설계를 바탕으로 코딩(구현)이 이루어진다 UML의 클래스와 OOP(c++, JAVA, EJB)와의 관계를 이해할 필요가 있음 개념과 명세개념 차원의 다이어그램은 추상 개념 서술 용도로 활용→ 이 경우 다이어그램은 의미론적 규칙에 얽매이지 않음 EX) 개념 상속에서 Dog은 Animal의 특수한 경우임을 나타내는 것 이상 없음 ⭐ 하지만 명세 용도의 다이어그램은 프로그램의 일부를 실제로 서술하는데 사용 → 구현의 가이드로 사용될 경우 더 많은 .. 2025. 6. 29. [소프트웨어분석 및 설계] 시퀀스 다이어그램 Behaviorl model (행동 모델) There are two types of behavioral models.→ 행동 모델에는 두 가지 유형이 있습니다.First, there are behavioral models used to represent the underlying details of a business process portrayed by a use-case model.→ 첫 번째로, 유스케이스 모델로 표현된 비즈니스 프로세스의 세부 내용을 나타내기 위해 사용되는 행동 모델이 있습니다.In UML, interaction diagrams (sequence and communication) are used for this type of behavioral model.→ UML에서는 이 유형의.. 2025. 6. 29. [DevOps] DevOps 및 마이크로 서비스 정리 DevOps 소개🔹 전통적인 개발 운영 체계의 문제점개발팀과 운영팀이 분리되어 있어 협업 부족.사용자의 피드백 반영 어려움.빠르고 안정적인 배포 어려움 (폭포수 모델 한계).애자일 도입 시에도 전통 체계와 충돌.🔹 DevOps의 개념과 핵심DevOps = Development + Operations개발과 운영의 통합 → 자동화 + 협업을 통해 효율성 제고. 🔹DevOps 주요 단계Dev계획 (Plan) : 개발 및 배포 계획코드 작성 (Code) : 소프트웨어의 코드 작성빌드 (Build): 컴파일 및 패키징테스트 (Test) : 검증Ops릴리스 (Release): 코드 배포 가능한상태배포 (Deploy) : 애플리케이션을 배포운영 (Operate) : 안정적 유지모니터링 (Monitor) : 문제.. 2025. 6. 21. [SpringBoot] 단방향, 양방향 연관관계 정리 Spring Boot JPA에선 양방향 관계와 단방향 관계가 있습니다. 이는 Entity 간의 참조 방향을 말합니다. 💠연관 관계 주인 💡 실제 데이터베이스에서 외래키를 가지는 엔티티 (테이블)을 말한다 양방향일 경우, mappedBy가 없는 쪽이 주인 (DB 조작 권한 가짐)반대쪽(mappedBy 사용)은 읽기 전용 💠단방향 관계란? 한쪽 Entity만 다른 Entity를 참조하는 관계. 즉 연관관계 주인에게 연관 관계를 주입한다 Order → Member (주문이 회원을 참조, 반대는 없음)@Entitypublic class Order { @Id @GeneratedValue private Long id; @ManyToOne private Member membe.. 2025. 5. 15. [Node.js] passport.js 적용법 passport.js란? Node.js에서 인증(Authentication)을 쉽게 구현할 수 있게 도와주는 미들웨어입니다. 로컬 로그인 소셜 로그인, JWT 인증 등을 구현할 수 있습니다 💠 passport.js 핵심 개념 요약 Strategy로그인 방식(로컬, 구글, 페이스북 등)을 말함serializeUser로그인 성공 시 사용자 정보를 세션에 저장하는 방식 정의deserializeUser세션에서 사용자 정보를 꺼내는 방식 정의passport.authenticate()실제 인증을 수행하는 미들웨어passport.use()사용할 로그인 전략 설정 (예: LocalStrategy, JwtStrategy) 🔐 로컬 로그인에서 적용하는 방법 1. 설치 npm install passpor.. 2025. 5. 6. [Node.js] Express 기본 설정 및 웹 개발 기존 Node.js에서는 HTTP 모듈로 서버 생성 → 요청 URL과 메서드에 따라 조건문으로 처리해야 했지만,Express를 사용하면 app.get(), app.post() 등으로 간단하게 라우팅을 처리할 수 있다. ✅ 기존 Node.js 방식 (express 없이) const http = require('http');const server = http.createServer((req, res) => { if (req.method === "GET" && req.url === "/") { res.writeHead(200, { "Content-Type": "text/plain" }); res.end("Hello from Node.js!"); } else { res.writeHead(.. 2025. 4. 25. [PyTorch] Tensor 데이터 조작 함수 정리 🚩Tensor란? Gpu 상에서 병렬 연산을 잘 수행하기 위해서 사용하는 자료형 자동 미분 최적화와 GPU에서 실행된다. 🔧 생성import torchimport numpy as np# tensor()x = torch.tensor([1.0, 2.0, 3.0])# from_numpy()arr = np.array([4.0, 5.0, 6.0])y = torch.from_numpy(arr) torch.tensor(data)Python 리스트/넘파이 배열 등을 텐서로 생성torch.from_numpy(ndarray)NumPy 배열을 공유 메모리 기반으로 텐서로 변환 (데이터 공유됨) 🔄 형태 변환 x = torch.tensor([[1, 2], [3, 4]])# to()x.to(torch.float.. 2025. 4. 23. [GCP] 원격에서 VM 접근 설정 1. 로컬 PC에서 SSH 키 생성 (이미 있으면 생략 가능) ssh-keygen 기본 경로(~/.ssh/id_rsa, ~/.ssh/id_rsa.pub)에 생성됨프롬프트에서 그냥 엔터 치면 기본값으로 생성.pub 파일이 공개키, .rsa 파일이 개인키임 2. 공개키를 복사 cat ~/.ssh/id_rsa.pub 이 내용을 복사해둔다 (전체 문자열을) 3. 원격에서 VM 접근 메타데이터에 접속하여 SSH 키로 들어간 후 Google 계정 ID로 변경 후 저장 로컬 PC의 터미널에서 ssh를 통해 접근 ssh @ 다음과 같이 접속 가능하다 2025. 4. 22. 이전 1 2 3 4 5 6 ··· 11 다음