전체 글
2022.09.14 (수요일) ~ 2022.09.16 (금요일) 주간 및 일일 학습계획
주간목표 2022.09.14 ~ 2022.09.16 컨디션 관리 주 3회 이상 운동 알고리즘 모의고사 진행 (목요일) 하루에 알고리즘 2문제 풀이 전공지식 노트 데이터베이스 시작 일일목표 2022.09.14 (수요일) DFS 를 활용한 순열, 조합 기본 문제, 응용 문제 풀이 인프런 순열, 조합 구하기 프로그래머스 완전탐색 Level2 소수 구하기 전공지식 노트 정리 일일목표 2022.09.15 (목요일) 프로그래머스 고득점 kit 완전탐색 2문제 풀이 프로그래머스 완전탐색 Level2 카펫 프로그래머스 완전탐색 Level2 피로도 전공지식 노트 DB 정규화까지 블로그 정리 트랜잭션 ~ DB 종류까지 학습 일일목표 2022.09.16 (금요일) 프로그래머스 고득점 kit 완전탐색 2문제 풀이 프로그래머스..
Web Server 와 Web Application Server
기록 이유 프로젝트를 진행하며 배포의 단계에 접어들었을 때, Web Server 와 WAS 라는 단어를 많이 접했었다. 웹 서버로는 주로 Nginx 를 사용해 React 를 배포하고 WAS 는 내가 사용하고 있는 Spring Boot 를 배포하는 과정에서 둘의 차이점을 정확히 알지 못한 상태로 배포를 담당했었는데, 항상 배포를 할 때 헷갈렸던 부분이라 이번 기회에 간단하게나마 짚고 넘어가고 싶어 기록을 남기게 되었다 🙂 Web Server 란 ? 서버 역할을 수행하게 하는 소프트웨어의 개념이며 아파치, Nginx, 윈도우에서 사용하는 IIS 가 대표적인 웹 서버 제품이라고 할 수 있다. 브라우저가 읽을 수 있는 HTML, JS, CSS, 이미지, 기타 데이터 들을 서버에서 사용자의 컴퓨터로 전송하는 역할..
[Issue Tracker Project] 로그인 시 환경변수 이슈 발생
기록 이유 FE 담당인 Mille 가 프론트 개발을 끝냈다는 연락을 받고 API 연결을 위해 오랜만에 팀원 모두가 모여 머리를 맞대로 삽질을 하고 있다. 로그인부터 막혔는데 전혀 이유를 찾지못하다가 생각보다 간단하게 수정할 수 있었는데.. 잊어버리지 않기 위해 기록하려고 한다 ! 기록 시작 ~ 어떤 문제가 발생했나 ? 현재 우리 프로젝트에서는 GitHub Oauth2.0 을 사용한 로그인을 구현하고 있다. 아래 이미지에서 모자이크 한 Client_Id 를 프론트 쪽에서 환경변수로 등록하고 GitHub Server 에 접근한 뒤, 프로젝트 서버가 배포된 WAS 의 로그인 API 로 리다이렉트하는 방식으로 동작하는데 계속해서 Client_Id = undefined 로 동작하는 문제가 발생했다 😫 왜 발생했으..
자바(Java) 알고리즘 문제풀이 섬의 갯수 [백준 / DFS]
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 풀이 코드 여러가지 테스트 케이스를 자유롭게 입력받아야 하는 부분이 조금 까다로운 문제였다. 대각선을 허용하기 때문에 4방향 벡터가 아닌 8방향 벡터를 사용해서 풀이하면 되는 문제. int[][] map 이차원 배열과 동일한 크기의 boolean[][] visited 방문 체크 배열을 따로 만들지 않고 map 배열에서 1인 경우 (땅인 경우) 일 때 바로 카운팅을 해주고, 해당 좌표를 인자로..
자바(Java) 알고리즘 문제풀이 토마토 [인프런 / BFS]
강의의 문제를 가져왔기 때문에 밝힙니다 ! 임의로 추가, 수정, 삭제한 내용들이 있으니 정확한 이해를 위해서는 강의를 구매하시는 것을 추천드립니다 😅 출처 : 자바(Java) 알고리즘 문제풀이 : 코딩테스트 대비 (인프런 강의) 풀이 코드 BFS 활용문제로, 토마토가 다 익는데 최소 몇일이 걸리는지 구하는 문제이다. 익은 토마토 기준으로 퍼져나가면서 주위의 토마토가 익는데, 최초에 익은 토마토가 한 개가 아니기 때문에 BFS 함수 호출 전, 미리 큐에 익은 토마토의 좌표를 넣어줘야 한다. 이 때문에 큐를 static 변수로 선언. 그러고 방향 벡터에서 상,하,좌,우 로 익지 않은 토마토를 발견하면 이동하면서 익은 토마토로 변경하고 익는데 걸리는 날짜를 좌표로 표현한 dis[][] 배열의 똑같은 좌표에도 ..
자바(Java) 알고리즘 문제풀이 A->B [백준 / DFS]
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 풀이 코드 DFS 기본 문제와 아주 유사한 완전탐색 문제이다. if-else 구문을 사용해서 if 절에는 출력 값을 결정해주는 탈출 구문을 작성하고 else 절에서 DFS() 를 두 가지 방식으로 호출하면 된다. 유의할 점은, 1을 수의 가장 오른쪽에 추가하는 부분인데 반례에 int 범위를 넘어가는 수가 나오므로 A 는 int 가 아닌 long 타입으로 받자. 그리고 StackOverFlow 예외를 방지하기 위해 재귀 호출 시 A 가 B 보다 큰 경우는 탐색할 필요가 없으므로 빠져나오도록 구현했다. 마지막으로 count ..
자바(Java) 알고리즘 문제풀이 음식물 피하기 [백준 / DFS]
https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 풀이 코드 DFS 완전 탐색으로 풀이했다. 저번에 풀이했던 백준 1303 전쟁-전투 문제와 아주 유사한 문제이다. 어느 부분에서 쓰레기가 가장 많이 뭉쳐져있는지? 확인하는 문제. 역시 이중 for문을 사용해 방문하지 않았고 쓰레기가 있는 곳을 DFS() 재귀 호출을 사용하고 DFS 함수 내에서 방향 벡터를 사용해 쓰레기가 있고 방문하지 않은 부분이라면 쓰레..
2022.09.05 (월요일) ~ 2022.09.09 (금요일) 주간 및 일일 학습계획
주간목표 2022.09.05 ~ 2022.09.02 컨디션 관리 알고리즘 모의고사 진행 (화요일, 목요일) Issue Tracker Login 부분 리팩토링 Web Server, Web Server Application 관련 학습 일일목표 2022.09.05 (월요일) DFS, BFS 문제 복습 전투-전쟁 (DFS) 음식물 피하기 (DFS) A -> B (DFS) 토마토 (BFS) 검봉과 Issue Tracker Login 부분 리팩토링 논의 현재 GitHub Oauth2.0 만을 사용하는 관계로 Oauth 관련 클래스 약간의 구조 변경 CORS 예외 파악 WebConfig 클래스의 addCorsMappings() 메소드에서 서버, 클라이언트 도메인 허용 일일목표 2022.09.06 (화요일) DFS 문..
자바(Java) 알고리즘 문제풀이 전쟁 - 전투 [백준 / DFS]
https://www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net 풀이 코드 DFS 완전 탐색으로 풀이했다. 주의할 점은 가로의 크기가 N, 세로의 크기가 M 이라고 명시되어있는 점을 주의하자. 나는 원래 세로 길이를 N, 가로 길이를 M 으로 했었기 때문에 입력 순서를 뒤바꿔줘서 [N][M] 으로 이차원 배열을 만들 수 있게 했다. 그리고 띄워쓰기 없이 board 가 입력되기 때문에 split() 을 활용해서 board 를 셋팅해줬다...
2022.08.30 (화요일) ~ 2022.09.02 (일요일) 주간 및 일일 학습계획
주간목표 2022.08.30 ~ 2022.09.02 컨디션 관리 알고리즘 모의고사 진행 (화요일, 목요일) 원티드, 프로그래머스 등에서 각 회사들 기술스택 알아보기 CS 전공지식 책 구매 일일목표 2022.08.30 (화요일) BFS 공부, DFS 복습 알고리즘 모의고사 백준 DFS와 BFS 풀이 일일목표 2022.08.31 (수요일) 저녁먹기 전까지 Part1 모두 풀이 각종 기업 기술스택 찾아보기 이력서 자기소개서 까지는 작성하기 일일목표 2022.09.01 (목요일) Part2 연산자 끼워넣기, 백준 미로탐색 문제 풀이 (DFS, BFS 복습) Issue Tracker JWT Login 사이클 복기 https://docs.github.com/en/developers/apps/building-oaut..