우테코 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..
이 포스팅은 공부 목적으로 작성된 포스팅 입니다. 왜곡된 내용이 포함되어 있을 수 있습니다. Airflowairflow는 배치 기반 워크플로우를 개발, 스케줄링, 모니터링하기 위한 오픈소스 플랫폼이다. python 기반으로 작성된다.airflow의 장점은 다음과 같다.파이선 기반의 파이프라인을 구성할 수 있다. (데이터 처리는 파이썬이 발달되어 있다.)데이터베이스와 클라우드와 통합이 가능하고 확장이 용이하다. 스케줄링을 활용하여 정기적으로 파이프라인을 실행할 수 있다.증분처리(변경된 데이터에 대해서만 처리하는것)를 지원한다 (아직 이해하지 못함)백필기능을 통한 데이터 재처리를 지원한다.(빅데이터 환경에서 발생하는 데이터가 제대로 처리 못하고 튀는 현상을 어느정도 보호해준다고 이해함)airflow를 사용하..
이 블로그는 개인의 공부 목적으로 작성된 블로그입니다. 왜곡된 정보가 포함되어 있을 수 있습니다.CD전 포스팅으로 우리는 CI를 이해했다. 그러면 CD는 뭘까 CD는 지속적 배포이다. CD는 비용문제와 연관이 높은데 일반적인 배포상황을 생각해보자 한번 배포하고 변경사항이 없다면 좋겠지만... 기능 추가, 리펙토링를 위해 여러번 배포과정을 겪여야한다.(프론트와 연결할때도 기능이 완료될때마다 배포할 수 있다면 좋을 것이다) 배포를 하는 건 어느정도 비용드는 작업이다. 대표적으로 ec2에 접속하여 변경된 코드를 받아 빌드하고 실행하는 프로세스만 생각해봐도 그렇다. 그러면 자동으로 배포할 수 있다면 어떨까? 비용을 아낄 수 있다. 이는 데브옵스와 관련 있는 내용인데 회사차원에서 이러한 자동화 구축으로 개발자가 ..
이 블로그는 개인의 공부 목적으로 작성된 블로그입니다. 왜곡된 정보가 포함되어 있을 수 있습니다.CI/CD백엔드 개발을 학습하다 보면 CI/CD라는 개념을 듣게 된다. CI/CD를 검색해보면 지속적 통합, 배포라는 추상적인 개념으로 나온다. 더 찾아보면 통합과 배포에 각각 프로세스가 존재해서 좋은 유지보수가 가능한 개발을 할 수 있다고 한다. 실제로 인터넷 상에서는 좋은 유지보수와 같은 개발 형태보다는 배포와 통합을 자동화한다는 의미로 더 많이 사용되고 있었다.당연히 자동화 하면 좋겠지? 라는 생각이 들지만 기존 협업 방식에 대해 생각해보면서 CI/CD를 최대한 쉽게 이해해보자기존 협업의 방식협업을 생각해본다면 가장 먼저 떠오르는 것은 github이다. 깃허브와 같은 SVM 형상 관리 툴로 협업을 진행하..