이 글은 개인 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있습니다. Java IO자바에서는 IO를 스트림으로 처리한다. OutputStream outputStream = socket.getOutputStream();InputStream inputStream = socket.getInputStream();read() 와 같은 블로킹 메서드를 통해 읽기, 쓰기를 처리한다. TCP 통신의 경우 ServerSocket(환영 소캣)에서 Accept한 socket을 클라이언트에게 전달하여 socket을 통해 클라이언트와 서버간 데이터를 주고 받는다. 이때 소캣에 있는 스트림을 반환 받아 입출력을 처리하게 된다.이러한 IO처리 방식에는 몇가지 문제가 있다. 1. Blocking IOblocking I..
우테코 4주차 과제를 진행하면서 고민했던 내용을 정리했습니다. 참고 없이 진행된 내용으로 다소 주관적인 내용이 포함되어 있습니다.과제4주차 과제는 매우 어려웠다. 문제를 처음 읽기 시작할때부터, 심상치 않음을 느꼈다.과제는 편의점 결제 시스템 프로그램을 개발하는 것이다.요구사항이 전 미션에 비교하여 휠씬 많았다. 요약하면 다음과 같다.재고 관리 기능프로모션 할인 기능맴버쉽 할인영수증 출력기능 목록상품을 구매할 수 있다.재고가 있는 상품만 구입할 수 있다.프로모션 할인을 적용할 수 있다구입한 날짜가 프로모션 날짜 범위에 있어야 적용할 수 있다.프로모션은 N + 1 구조이다.프로모션 재고가 떨어지면, 정가로 구매해야한다.맴버쉽 할인을 적용할 수 있다.맴버쉽 회원은 프로모션 미적용 금액의 30%를 할인 받는다..
우테코 3주차 과제를 진행하면서 고민했던 내용을 정리한다. 참고 없이 진행한 내용으로 다소 주관적인 내용이 포함되어 있다.과제3주차 과제는 로또 프로그램을 구현하는 것이다. 요구사항은 다음과 같다.로또 번호의 숫자 범위는 1~45까지이다.1개의 로또를 발행할 때 중복되지 않는 6개의 숫자를 뽑는다.당첨 번호 추첨 시 중복되지 않는 숫자 6개와 보너스 번호 1개를 뽑는다.당첨은 1등부터 5등까지 있다. 당첨 기준과 금액은 아래와 같다.1등: 6개 번호 일치 / 2,000,000,000원2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원3등: 5개 번호 일치 / 1,500,000원4등: 4개 번호 일치 / 50,000원5등: 3개 번호 일치 / 5,000원로또 구입 금액을 입력하면 구입 금액에 ..
우테코 2주차 과제를 진행하면서 고민했던 내용을 정리한다. 참고 없이 진행한 내용으로 다소 주관적인 내용이 포함되어 있다.과제2주차 과제는 자동차 경주를 구현하는 것이다. 기능 요구사항은 다음과 같다.주어진 횟수 동안 n대의 자동차는 전진 또는 멈출 수 있다.각 자동차에 이름을 부여할 수 있다. 전진하는 자동차를 출력할 때 자동차 이름을 같이 출력한다.자동차 이름은 쉼표(,)를 기준으로 구분하며 이름은 5자 이하만 가능하다.사용자는 몇 번의 이동을 할 것인지를 입력할 수 있어야 한다.전진하는 조건은 0에서 9 사이에서 무작위 값을 구한 후 무작위 값이 4 이상일 경우이다.자동차 경주 게임을 완료한 후 누가 우승했는지를 알려준다. 우승자는 한 명 이상일 수 있다.우승자가 여러 명일 경우 쉼표(,)를 이용하..
우테코를 1주차 과제를 진행하면서 고민했던 내용을 정리한다. 제출전까지 다른 과제 참고 없이 진행한 내용이므로 다소 주관적인 내용이 포함되어 있다.과제1주차 과제는 문자열 덧셈 계산기를 구현하는 것이다. 기능 요구 사항은 다음과 같다. 입력 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다.예: "" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다.예를 들어 "//;\n1;2;3"과 같이..
이 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. DHCPDHCP은 Dynamic Host Configuration Protocol 으로서 host에게 IP를 할당하는 프로토콜이다. 정확하게 말하면 사설IP와 기타 구성 정보를 제공받는 프로토콜이다.(그래서 Dynamic Host Address Protocol이 아니고 Dynamic Host Configuration Protocol이다)우리는 사실 매일 DHCP를 사용하고 있다. 유선 네트워크(이더뎃) 또는 와이파이 사용하기 위해 컴퓨터를 네트워크에 연결해야하는데 이때 DHCP를 통해 라우터 또는 공유기에 연결한다. Configuration(Subnet Mask)사용중인 IP address를 확인하기 위해 ipco..
0. KUIT동아리 프로젝트를 진행하였다. 팀원은 10명으로 PM, 디자이너, FE, BE 으로 이루어져 있었고, BE가 4명으로 가장 많았다. BE를 파트장을 맡게 되었는데, 팀원들을 이끌어 보는 적이 많지 않았기 때문에 원할한 협업을 하기 위해 노력했다. 기존에 해봤던 개발에 SSR이 였기 때문에 프론트과 소통할 수 있는 좋은 기회였다.1. 기획팀에 합류하여 처음 했던 것은 기획에 대한 전반적이 설명을 들었다. 기획을 PM이 이미 정하고 UI/UX도 어느정도 나온 상태이기 때문에, 만약 기획적으로 변경해야할 부분이 있다면 최대한 기획의 큰 틀에서 벗어나지 않는 선에서 해야했다.회의간에 이야기했던 내용은 대부분 두가지였다.해당 기능이 있는 이유가 뭔가요? (의도 파악)해당 기능을 이렇게 구현하려고 하는..
이 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다 방학 중에 진행중인 프로젝트에서 식당 관련된 요구사항이 있었다.식당정보, 식당 메뉴 영업시간, 식당 사진과 같은 식당 세부 정보를 조회할 수 있다.식당의 위치를 조회할 수 있다.사전 조사식당 정보를 제공하는 OPEN API, 공공 데이터가 있다고 생각하고 조사를 시작했지만 조사 하면서 제공되는 API가 없다는 것을 알게 되었다. 먼저 위치 정보를 알아야 하기 때문에 지도 API를 조사하였다, 대중적인 지도 API는 네이버 지도, 카카오 맵, 구글 맵가 있었다.각각 API를 조사했을때, 식당 세부정보를 위해 사용할만한 API는 없었다. 그나마 구글맵에서 유사하게 가게 상세정보를 제공하는 API가 있었는데 인자값으로 위..
이 포스팅은 개인 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. 개발을 하던중 cors에 관해서 이해가지 않는 부분이 생겨 기록한다.CORShttps://developer.mozilla.org/en-US/docs/Web/HTTP/CORS Cross-Origin Resource Sharing (CORS) - HTTP | MDNCross-Origin Resource Sharing (CORS) is an HTTP-header based mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit lo..
이 포스팅은 공부 목적으로 작성된 포스팅입니다. 왜곡된 내용이 포함되어 있을 수 있습니다 전처리 과정수행하려는 데이터 전처리 과정은 다음과 같다.서울 열린 데이터 광장에서 제공하는 서울시 일반음식점 인허가 정보를 데이터를 받는다(csv)각각 음식점에 대해서 음식점 사진을 3개로 가져온다(3개 이하라면 최대로)식당 메뉴 및 가격을 가져온다식당 운영시간을 가져온다.식당 좌표를 사용하는 지도 API에 맞게 수정한다.csv 파일 분리서울시 일반음식점 인허가 정보는 가지고 있는데 데이터로 해당 데이터를 여러개의 csv로 분할하는 task를 만들어보자from airflow import DAGfrom airflow.operators.python_operator import PythonOperatorfrom airfl..