본문 바로가기

전체 글

(32)
Run on Server가 보이지 않는 문제 프로젝트를 이클립스에 import 후 서버에 올릴려 했으나.. 올려지지 않았다. 서버에 잘 올라가는 프로젝트와 비교했을 때 Deployment Descriptor가 보이지 않았다. Deployment Descriptor는 web.xml 파일로, 기존 프로젝트를 import하기 때문에 해당 파일을 가지고 있었다. 인식이 안되는건가..? 생각하며 구글링 한 결과,프로젝트 구조, 설정을 관리하는 Dynamic Web Module이 없다는 것을 알게 되었다. Dynamic Web Module을 체크해주고 Java, JavaScript도 없었다면 체크해준다. Java를 새로 추가했다면 다음 창이 나올텐데 Build Path를 설정해주는 부분으로,src/main/java를 입력해주면 된다. 그리고 Web Modul..
[날씨 기반 여행 플래너] RestTemplate으로 제네릭 클래스에 json 매핑하기 (feat. 제네릭의 타입 소거, 익명 클래스) 작년 11월, 멀티캠퍼스에서 백엔드 개발 교육 과정을 수료했다. 최종 프로젝트를 진행하면서 마주했던 문제들을 노션에 정리해놨는데,프로젝트 복기 겸..! 누군가에게 도움이 될까 싶어..! 글로 정리해보고자 한다. 프로젝트를 간단히 설명하자면, '날씨 기반 여행 플래너'로 날씨를 바탕으로 여행 계획을 수립할 수 있는 웹 서비스이다.Java, Spring boot, MyBatis, Oracle 등의 기술을 활용하였고,날씨와 여행 장소 데이터는 기상청과 한국관광공사의 Open API를 이용하였다.내가 맡은 역할 중 하나는 한국관공공사의 TourAPI를 이용하여 국내 여행 장소를 DB에 저장하는 일이었다. TourAPI에서는 지역기반관광정보, 소개정보, 이미지정보.. 여러 데이터를 제공해주는데,주소, 이름과 같은..
[날씨 기반 여행 플래너] 로깅 전략 작년 11월, 멀티캠퍼스에서 백엔드 개발 교육 과정을 수료했다. 최종 프로젝트를 진행하면서 마주했던 문제들을 노션에 정리해놨는데,프로젝트 복기 겸..! 누군가에게 도움이 될까 싶어..! 글로 정리해보고자 한다. 프로젝트를 간단히 설명하자면, '날씨 기반 여행 플래너'로 날씨를 바탕으로 여행 계획을 수립할 수 있는 웹 서비스이다.Java, Spring boot, MyBatis, Oracle 등의 기술을 활용하였고,날씨와 여행 장소 데이터는 기상청과 한국관광공사의 Open API를 이용하였다.   프로젝트 당시 세웠던 로깅 전략에 관해 얘기해보려고 한다 ! 로그에 대해 무지했던 나는 모든 패키지에 debug 레벨로 설정하여 사용했다.하지만, 이 설정은 모든 라이브러리, 프레임워크의 내부 동작을 콘솔에 출력해..
Git으로 협업하기 Git을 이용하지 않을 때 문제점 각자 작업하던 코드를 합쳐야 할 때 일일이 diff하고 복사, 붙여넣기 해야한다. 이때, 같은 코드를 다르게 수정했을 수도 있으며 자신과 관련 없는 코드도 살펴봐야 하는 등의 이유 때문에 코드 병합은 복잡하고 힘들어진다. Git을 이용한 코드 병합 Git은 독립적으로 개발할 수 있는 환경을 제공해주고 각자 개발한 작업들을 대신 합쳐준다. Branch Git의 Branch는 버전의 분기로, 원래 코드와는 상관없이 독립적으로 개발을 진행하게 해준다. Git의 기본 branch는 master, Github의 branch는 main Checkout 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 행위다. (HEAD를 변경하는 작업이다.) 한 브랜치에서 작업을 하다가 커밋하..
Git 기초 Git Git은 버전을 관리해주는 소프트웨어 Version 버전이란 유의미한 변화(기능 추가 등)가 결과물로 나온 것이다. 변수명 수정 등의 작은 변화는 유의미하다고 할 수 없다. 버전 관리 1. 버전을 비교해줌으로써 변경 사항을 알 수 있다. 2. 이전 버전으로 되돌릴 수 있다. 3. 여러 명의 코드를 쉽게 나누고 합치며 개발할 수 있다. 4. 더 중요한 버전들을 분류할 수 있다. 5. 버전으로 등록하지 않은 파일들을 임시 보관할 수 있다. 6. ... 이러한 Git을 이용하면 저장소에 버전들을 기록해 필요할 때 참고하거나, 되돌릴 수 있어 개발 생산성이 높아질 것이다. 공간 Git에는 3개의 공간이 있다. 1. 작업 디렉토리(Working Directory) 2. 스테이지(Staging Area) 3..
[DFS&BFS] 개념 정리 및 구현 01. 그래프 탐색 알고리즘그래프의 모든 정점들을 특정한 순서에 따라 방문하는 알고리즘으로, 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS)이 있습니다.   02. 그래프의 구현 방법인접 리스트 표현각 정점과 인점한 정점들을 저장해서 그래프를 표현하는 방법으로,예를 들어 그래프의 저장 공간을 이차원 벡터로 표현한다면, 다음과 같게 됩니다.vector> adjacent;adjacent[i  03. 깊이 우선 탐색(DFS)깊이 우선 탐색은 한 정점으로부터 가장 깊은 노드까지 탐색하고, 더 이상 갈 곳이 없어지면 원점으로 돌아와 다른 노드를 탐색하는 방법으로, 다음 그림과 같이 탐색을 진행합니다.     탐색 순서: 0 -> 1 -> 3 -> (4 -> 1 -> 0) -> 2 -> 5 -> (6 -> 2 ..
[STL] string 정리 01. String  컨테이너string은 vector 컨테이너와 비슷한 컨테이너로, 시퀀스 컨테이너이며 배열 기반 컨테이너입니다.표준 C++ 라이브러리는 문자와 관련된 두 컨테이너(string, wstring)를 제공합니다.string은 char 형식의 문자를 관리하기 위한 basic_string 컨테이너의 typedef 형식이며,wstring은 유니코드 문자(wchar_t)를 관리하기 위한 basic_string 컨테이너의 typedef 형식입니다.C, C++ 문자열처럼 '\0' 문자를 요구하지 않습니다. 02. String 인터페이스생성자 string s; 기본 생성자로 s를 생성 string s(sz); sz 문자열로 s 생성 string s(sz,n); sz 문자열에서 n개의 문자로 s를 생성 ..
EOF(End of file) 운영체제와 상관없이, 파일의 끝에 도달했을 때 언제나 특별한 값을 반환하는데 그 값을 EOF(End Of File)라고 하며, 이 값은 -1을 나타냅니다. 또한, 파일뿐만 아니라 키보드를 통해 입력 시에도 입력의 끝을 알려주는 방법이 필요한데, 윈도우에서는 Ctrl+Z를 누르고 Enter를 누른다면, 유닉스 시스템에서는 Ctrl+D를 누른다면 EOF를 발생시킬 수 있습니다. 프로그래밍 예제 - 백준 10951번 * 이 문제는 test case의 개수를 받고 있지 않으며, 따라서 Ctrl+Z 혹은 Ctrl+D를 통해 입력을 멈춰야 합니다. * - cin.eof(): 파일의 끝을 의미하는 EOF를 읽게 되면 true 값을 돌려줍니다.