분류 전체보기534 DFS 알고리즘 DFS(Depth-First Search)는 그래프 탐색 알고리즘 중 하나로, 깊이 방향으로 그래프를 탐색하는 방법입니다. DFS는 스택(Stack) 또는 재귀 함수를 통해 구현할 수 있습니다. DFS의 동작 방식은 다음과 같습니다: 시작 노드를 방문하고, 해당 노드를 방문한 것으로 표시합니다. 현재 노드와 연결된 이웃 노드들 중에서 아직 방문하지 않은 노드를 선택합니다. 선택한 이웃 노드로 이동하여 재귀적으로 탐색합니다. 선택한 이웃 노드가 없을 때까지 이 과정을 반복합니다. 모든 이웃 노드를 방문한 후에는 이전 단계로 돌아가서 다음 이웃 노드를 선택하고 탐색을 진행합니다. 스택이 비어있을 때까지 위 과정을 반복합니다. DFS는 깊이를 우선으로 탐색하기 때문에, 그래프의 한 가지 경로를 가능한 멀리까지.. 2023. 6. 9. https 적용(Route 53, ACM, 로드밸런서) 오늘 하루를 https를 적용하는데 써버렸다.. 처음 목표는 github.io로 프론트 서버를 돌리고 백엔드는 ec2에서 돌리는데 도메인을 구입해서 github에서 설정을 잘 해서 예쁘게 만들려고 했지만 도메인을 적용하면 ec2 프론트 엔드 서버로 자꾸 리다이렉트 돼서 그냥 돈을 조금 더 내더라도 ec2로 프론트를 돌리기로 했다. 도메인 구매 오늘 사용한 aws 서비스는 ACM(AWS Certificate Manager), Route 53, 로드밸런서 이렇게 3가지 서비스를 사용하였다. hosting.kr에서 도메인을 1년짜리를 5천원이었나 구입하였다. 무료 도메인을 사용하고 있었는데 내도메인.한국 사이트에서 무료로 제공하는 도메인은 ssl 인증이 안된다고 알고 있어서 결국 유료로 도메인을 구매했다. 구.. 2023. 6. 6. klub 1.2.0 버전 배포 ❗수 많은 구글 시트를 인수인계하면서 데이터를 잃어버리시진 않았나요? ❗회원들이 계속해서 회비 납부가 되었는지, 출석 몇 회인지 물어보지 않던가요? 안녕하세요! 저희는 정보대학 웹개발 동아리 KWEB입니다. KWEB은 KLUE 서비스를 개발 및 유지보수하고 있는 동아리입니다. 그런 KWEB에서 시트 기반의 동아리 관리를 대체할 플랫폼인 KLUB을 새로 출시했습니다! 현재 정보대학 소속 6개 동아리가 시범 사용 중에 있습니다. KLUB에서는 현재 다음과 같은 기능을 제공합니다. ✅ 편리한 회원 명단 관리 - 기존 엑셀 시트로 이전이 가능해요. ✅ 동아리 홍보 및 가입 - KLUB에서 홍보글 쓰고, 가입도 받을 수 있어요. ✅ 회의록, 출석부 관리 - 각 행사마다 출석부, 회의록을 저장할 수 있어요. ✅ 각.. 2023. 6. 4. BFS 알고리즘 너비 우선 탐색(BFS, Breadth-First Search) 너비 우선 탐색이란? 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법이다. 즉, 깊게(deep) 탐색하기 전에 넓게(wide) 탐색하는 것이다. 사용하는 경우: 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 선택한다. - Ex) 지구상에 존재하는 모든 친구 관계를 그래프로 표현한 후 Ash와 Vanessa 사이에 존재하는 경로를 찾는 경우 - 깊이 우선 탐색의 경우 - 모든 친구 관계를 다 살펴봐야 할지도 모른다. - 너비 우선 탐색의 경우 - Ash와 가까운 관계부터 탐색 너비 우선 .. 2023. 6. 2. 플로이드 워셜 알고리즘 알고리즘 - 플로이드-워셜(Floyd-Warshall) 알고리즘 📌 플로이드-워셜(Floyd-Warshall) 알고리즘이란? 모든 최단 경로를 구하는 알고리즘 다익스트라는 하나의 정점에서 다른 모든 정점까지의 최단 거리를 구하는 알고리즘(S.S.S.P - Single Source Shortest Path) 이었다면, 플로이드-워셜 알고리즘은 한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있습니다. 플로이드-워셜 알고리즘은 다익스트라 알고리즘과는 다르게 음의 간선도 사용할 수 있다. 시간 복잡도 : O(n^3) 예제 프로그래머스 - 합승 택시 요금 import java.util.*; class Solution { static final int INF = 987654321; public int solu.. 2023. 6. 2. klub 배포전 QA 진행 팀원들 기말고사 시작 전에 배포를 완료해야해서 QA를 일주일 동안 진행했다. 아무래도 동아리 학기 개념 추가가 너무 덩치가 커서 엄청난 에러가 발생할 것이라 예상했지만 다행히 예상보다 더 큰 에러는 발생하지 않아서 일주일 안에 QA를 끝낼 수 있었다. 다른 부분들은 뭐 이미 기능들이 안정적으로 동작해서 테스트하는데 오랜 시간이 걸리지 않았지만 학기가 변경되는 순간 즉, 모든 동아리 회원 정보, 회비, 모집 학기 등이 이월되는 순간 에러들이 봇물터지듯 흘러나왔다. 아직 나는 백엔드로 포지션을 바꾸고 nest js에 익숙치 않아서 팀원들이 열심히 만든 기능들을 QA하는데 집중하였다. 개인적으로 진행하던 프로젝트들은 테스트 코드를 같이 작성하면서 Spring Rest Docs를 통해 동시에 문서화를 진행하기도.. 2023. 5. 28. git flow 전략이란? klub 개발 프로세스 klub 팀에서 이번주에 1.2.0 버전을 배포 예정이라서 QA를 진행중이어서 git flow 전략에 조금 더 자세히 알아보고자 글을 작성하였습니다. git 브랜치 전략이란? 브랜치 전략이란 여러 개발자가 하나의 저장소를 사용하는 환경에서 효과적으로 협업을 하기 위한 전략입니다. 브랜치 생성, 삭제, 병합 등 git flow 전략을 사용하여 개발자들이 소스를 편하게 관리할 수 있습니다. git 브랜치 전략에는 git flow 전략뿐만 아니라 github-flow 라는 전략도 있지만 klub 팀에서는 git flow 전략을 사용하기에 git flow에 대해서 조금 더 자세히 알아볼 예정입니다. 만약 git flow가 없다면 개발자들은 어떤 브랜치에 PR을 날려야 할지 어떤 브랜치부터.. 2023. 5. 26. klub 개발 일지-20230519 보호되어 있는 글 입니다. 2023. 5. 19. 데이터베이스 질문 데이터베이스 인덱스란 무엇이며, 어떻게 작동하나요? 데이터베이스 인덱스(Index)는 테이블의 특정 열(Column)에 대한 검색 성능을 향상시키기 위해 사용되는 데이터 구조입니다. 즉, 인덱스는 테이블의 데이터를 더 빠르게 검색할 수 있도록 도와주는 기능입니다. 인덱스는 대개 B-트리(B-tree) 또는 해시(Hash) 구조를 사용하여 구현됩니다. B-트리 인덱스는 데이터베이스에서 가장 많이 사용되는 인덱스 구조 중 하나입니다. 인덱스를 사용하면 데이터베이스 검색 성능이 향상되지만, 인덱스는 추가적인 공간과 오버헤드를 발생시키므로 모든 열에 대해 인덱스를 생성하는 것은 권장되지 않습니다. 적절한 인덱스를 생성하면 데이터베이스의 검색 성능을 크게 향상시킬 수 있습니다. 예를 들어 게시글 제목을 검색할 때.. 2023. 5. 17. 이전 1 ··· 5 6 7 8 9 10 11 ··· 60 다음