본문 바로가기

네트워크 플로우 // freopen("input.txt", "r", stdin); #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for (int i = 0; i < (int)(n); ++i) #define rep1(i, n) for (int i = 1; i 0 && d[next] == -1) { d[next] = cur; q.push(next); } } } if..
머지소트트리 int arr[100002]; vector tree[4 * 100002]; int N, M, K; void update(int bucket, int start, int end, int node, int x) { if (node < start || end < node) return; tree[bucket].push_back(x); if (start != end) { update(bucket * 2, start, (start + end) / 2, node, x); update(bucket * 2 + 1, (start + end) / 2 + 1, end, node, x); } } int query(int node, int start, int end, int left, int right, int x) { if ..
소프티어부트캠프 3기 최종프로젝트 후기 프로젝트 배경 최종 프로젝트에 앞서 뽑기를 통해 4인팀에 선정되었다. 2 web FE, 2 web BE팀으로 평균적으로 5인팀이었던 것에 비해 사람이 한 사람 적은 단점이 있지만 뭐 하면 되겠지? 라는 마인드였다. 프로젝트 초기 기획이 제일 어려웠던 것같다. 기획 아이디어만 있다면 무엇을 만들지 어떤 포인트를 가지고 갈지가 결정되는데 팀원중에 좋은 아이디어를 가져와서 빠르게 개발및 환경 설정에 들어갈 수 있었던 것 같다. 최종 주제로는 화물운송용달 서비스 가 선정 되었고 첫주에는 기술스택이나 ERD, API문서 등의 설계에 들어갔다. 우리는 고객앱 그리고 예약을 잡는 기사앱 두개를 전부 하려고 했고 그만큼 인력에 비해 시간이 부족했던것 같다. 다 끝나고 와서 드는 생각인데 구현도 물론 중요하지만 설계를 ..
spring에서 api 요청하기 현재 개발하는 프로젝트에서 지도 api를 사용하게 될일이 생겼다. 정확히는 출발지와 목적지가 주어졌을때, 얼마나 걸리는지를 계산해서 거리와 시간을 가지고 비용 측정 및 차량을 추천해줘야 하는 상황이다. 우선, 이런저런 리서치를 해봤는데 spring에서 api를 요청할 일이 거의 없었나 자료들이 많지는 않았다. front에서 요청하듯이 하면 되겠지? 라는 생각 정도 였다. https://github.com/googlemaps/google-maps-services-java GitHub - googlemaps/google-maps-services-java: Java client library for Google Maps API Web Services Java client library for Google Ma..
객체지향의 사실과 오해 작가 : 조영호 분야 : IT / 언어 읽은 기간 : 24.02.10 예전 부터 들어봤던 책인데, 전에 쓴 Git관련 강의에서 잠깐 언급된 이 강의는 이 책의 제목을 패러디 한것이라고 소개해주면서 이 책도 읽어보면 좋다라고 하셔서 내 읽어야 될 리스트에 넣어놨었다. 설에 내려오면서 책 반납해야될 시간이 되어 급하게 읽게 되었다. 객체지향의 사실과 오해 - 역할, 책임, 협력 관점에서 본 객체지향 책의 도입부에는 객체지향을 카페에서 바리스타, 캐셔, 고객 입장에서 간단하게 설명한다. 그리고 이후에는 이상한 나라의 앨리스 이야기를 이용하여 객체 지향에 대해서 설명한다. 객체를 현실에 빗대어 설명하지만 현실과 비슷하다고 생각하다면 안된다고 자꾸 반복한다. 보통 우리들은 객체를 설계할때 객체가 어떤 정보를 가지..
자바의 이모저모 : static, final, 그리고 캐스팅 public class PostRepository { private static final Logger logger = LoggerFactory.getLogger(PostRepository.class); } 자바를 다루다 보면 위와 같은 변수선언들을 정말 자주 볼수 있다. 심지어 static final을 사용하지않으면 intellij에서 사용하라고 권장하기도 한다. 지금까지는 순순히 하라는대로 했지만 이제는 왜 그렇게 해야되는지를 알아보려고한다. public class PostRepository { private Logger logger = LoggerFactory.getLogger(PostRepository.class); } 아래와 같은 코드도 역시 가능하다. 그리고 C, C++을 사용할때는 이러한 경..
IO와 NIO WAS개발 중에 있었던 요구사항 중 하나이다. 만약 java.nio를 사용하고 있었다면 java.io를 사용하도록 수정한다. 이 요구사항을 봤을때 처음 드는 생각은 내가 io를 어디에서 쓰고 nio를 어디서 쓰지? 였고 그리고 굳이 왜? 라는 생각이 들었다. 그렇다면 io, nio가 무엇인지 먼저 살펴 보도록 하자. io는 input/ output의 줄인말이고 chatgpt선생님의 말을 참고하자면 I/O(Input/Output)와 NIO(New I/O)는 Java에서 데이터를 읽고 쓰는 방법을 개선하기 위해 도입된 두 가지 접근 방식입니다. I/O (기존의 전통적인 입출력 방식): 입출력 작업은 스트림(Stream)을 통해 이루어집니다. 입력 스트림(Input Stream)은 데이터를 읽고, 출력 스트림..
나의 WAS 변경점, 한계 그리고 개선사항 지난 내용은 여기와 같다. https://b1ackhand.tistory.com/262 이후에 나의 WAS를 어떻게 발전시켰고 어떤 문제점을 마주했는지 기록해보려고한다. 발전사항 및 변경점 나의 구조를 요약하자면 Request에서 api 처리를 Response에서 정적인 컨텐츠를 반환한다. 그림으로 보면 위와 같다. 다음으로 구현해야 될 내용은 Post요청 -> Session 로그인 -> 동적인 HTML -> 게시판 처리 이와 같다. 먼저 Post요청을 처리하기 위해 Request에 Body Parser라는 클래스를 만들어줬다. Post요청에서 지금은 post request x-www-form-urlencoded 형태로 들어오지만 다른 스프링 프로젝트를 해보면 json형태로 오거나 다양한 형태로 오기 때..