전체 글 89

[Data] 내 손으로 만드는 맞춤형 지도 데이터 (2)

3-2. Qgis 프로그램 사용하여 데이터 생성1) Qgis 프로그램 설치https://qgis.org/download/ Download · QGIS Web Site qgis.org 2) shp 다운https://www.vworld.kr/v4po_main.do 브이월드국가가 보유하고 있는 공개 가능한 공간정보를 모든 국민이 자유롭게 활용할 수 있도록 다양한 방법을 제공합니다.www.vworld.kr 3) Qgis로 다운받은 shp 레이어 수정 무결하지 않은 도형 수정무결하지 않은 입력 도형의 무결한 표현을 입력 꼭짓점을 모두 유지한 채로 새로 생성공간 처리 툴박스 -> 벡터 -> 도형 수정 표현식으로 원하는 속성으로 레이어 필터링속성 데이터를 사용하여 필터링 하여 원하는 지역의 데이터만 추출"A3" ..

개발/기타 2025.07.13

[서버] 라즈베리파이(4) [서버 마이그레이션 기록]

FastAPI + postgreSQL + SQLAlchemy + alembic 저번에 서버를 만들었을때는 Flask + SQLite를 선택하여 백엔드를 설계하였다. 서버가 라즈베리파이라 최대한 경량화 하려고 선택한 DB가 SQLite 인데 프로젝트의 기획이 점차 확장되면서, 단순한 Key-Value 저장 수준을 넘는 복잡한 관계형 데이터 처리, 정합성 유지, 그리고 스키마 변경 이력 관리 같은 기능이 필요해지기 시작했다. 이 과정에서 SQLite는 기능적 한계가 생겼고 그래서 서버 구조를 전면적으로 재설계하기로 했다. 데이터베이스는 PostgreSQL로 변경해 안정성과 확장성을 확보하고, 웹 프레임워크는 FastAPI로 바꿔 비동기 처리와 타입 기반 개발의 장점을 살리기로 하였다.특히 데이터 모델이 자주..

개발/server 2025.07.09

[Docker] Docker 이미지 태그 slim vs alpine

Docker 이미지 최적화 라즈베리파이 4를 서버로 사용하면서 너무 오래 걸리는 도커 이미지 빌드 시간과 간헐적인 멈춤 이슈로 인해 외장하드를 연결하여 서버 성능을 올리고자 하였다. 그런데 나중에 실무에서 이런 일이 발생 했을때 내 마음대로 서버 성능을 바꿀수는 없지 않을까 하는 생각이 들었다. 그래서 인프라를 바꾸지 않고 소프트웨어적으로 해결하는걸 도전해보기로 하였다. (물론 원활한 실제 서버 운영을 위해서 ssd는 추가로 달예정이다.) 1. Docker ImageDocker 이미지는 미리 만들어진 OS + 언어 실행 환경이다. 이미지에는 이미지 태그가 있는데 이미지 크기, 운영체제 종류, 최적화 방식 등을 선택하는 중요한 요소이다. 2. Image tag1) name:version가장 기본이..

개발/server 2025.07.06

유혹 묶기

이번달은 계획적인 삶을 살기위해 노력해보았다. 파워 P 였던 내가 이런 다짐을 하게 된 이유가 몇가지 있는데 일단 첫번째는 내 삶이 만족스럽지 않았고 두번째는 나를 힘들게 하는 사람들은 대체로 계획 없이 사는 사람들이었고 세번째는 내가 멋있다고 생각한 사람들은 언제나 계획적인 사람들이었다. 물론 본투비 infp인 내가 아무리 계획적으로 산다고 해도 j 처럼 계획적이긴 힘들거라고 생각한다. 그래서 적어도 대문자 P에서 소문자 p가 되어보기로 했다.계획적으로 살아보니 가장 좋은 점은 아무것도 안하는 날이 줄었다는 것이다. 전날 자기전에 다음날 할 일을 정해놓으니 일어나자마자 해야 할 일들이 생긴다. 그러다보니 자연스럽게 침대에만 누워있는 시간이 줄었다. 물론 아직 내가 짠 계획을 완벽히 다 지키지는 못하고 ..

한달 회고 2025.07.05

[프로그래머스] 할인행사

문제 설명XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다.예를 들어, 정현이가 원하는 제품이 바나나 3개, 사과 2개, 쌀 2개, 돼지고기 2개, 냄비 1개이며, XYZ 마트에서 14일간 회원을 대상으로 할인하는 제품이 날짜 순서대로 치킨, 사과, 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과, 바나나인 경우에 대해 알아봅시다. 첫째 날부터 열흘 간에는 냄비가 할인하지 않기 때문에 첫째 ..

[프로그래머스] 두개의 수로 특정값 만들기

문제 설명n개의 양의 정수로 이루어진 배열 arr와 정수 target이 주어졌을 때 이 중에서 합이 target인 두 수가 arr에 있는지 찾고, 있으면 true, 없으면 false를 반환하는 solution() 함수를 작성하세요. 제한 조건n 은 2 이상 10,000 이하의 자연수입니다.arr 의 각 원소는 1 이상 10,000 이하의 자연수입니다.arr 의 원소 중 중복되는 원소는 없습니다.target 은 1 이상 20,000 이하의 자연수입니다. 입출력 예arrtargetreturn[1, 2, 3, 4, 8]6true[2, 3, 5, 9]10false 나의 풀이array 갯수만큼 0으로 된 배열 생성array안의 숫자값을 만든 배열에 1을 넣어서 저장array로 for문을 돌면서 만약 num..

[서버] 라즈베리파이(3) [Docker]

Docker를 이용하여 로컬과 서버 환경을 일관성 유지 라즈베리 파이에서 실제 서버를 만들려고 하니 계속 서버를 열어놓아야 하는게 부담이 되었다. 그래서 서버에서 직접 벡엔드를 구축하는 대신에 로컬에서 만든 후 서버에서 테스트를 해보기로 하였다. 여기서 중요한 점은 서버와 로컬의 개발 환경이 동일해야 한다는 점이었는데 이를 해결하기 위해 Docker를 이용해보기로 하였다. 1. DockerDocker는 애플리케이션을 컨테이너라는 표준화된 단위로 패키징하여, 개발, 테스트, 배포 과정을 효율적으로 만들어주는 오픈 소스 플랫폼으로 컨테이너는 애플리케이션 코드와 필요한 모든 종속성을 포함하므로, 다양한 환경에서 일관된 실행을 보장한다. (Docker 컨테이너를 사용하면, 개발자는 어플리케이션과 필요한 라..

개발/server 2025.06.23

[프로그래머스] 완주하지 못한 선수

문제 설명수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예participantcompletionreturn["leo", "kiki", "ede..

[서버] 라즈베리파이(2) [Flask]

웹서버 구축하기 몇달간 그자리에 방치되어 있는 라즈베리파이를 볼때마다 저걸 어떻게 하지 하는 많은 고민이 들었다. 그러다 최근 시작한 swift 프로젝트의 벡엔드 서버로 라즈베리파이를 사용하면 좋을것 같다는 생각이 들었다. 클라우드 서버를 사용할까 하다가 실제 서버를 만들어보면 서버나 네트워크 쪽도 더 자세히 알게되고 공부도 되지 않을까 하여 직접 웹서버 + DB를 만들어 보기로 하였다. 실제로 서버를 구축하기전 염두해둘 세가지가 있었다. 1. 간단하고 직관적이며 입문자에게 최적, 빠른 구현이 가능할것2. CPU 사용률 낮을것 3. python 사용 위의 세가지 고려사항을 바탕으로 FastAPI와 Flask로 추려지게 되었다. 결론적으로는 Flask를 선택했고 추후 필요하다면 FastAPI로 마이그레이..

개발/server 2025.06.22

[Data] 내 손으로 만드는 맞춤형 지도 데이터 (1)

AI와 함께하는 데이터 작업 이번에 시작한 swift 프로젝트는 데이터가 주가 되는 프로젝트라 어떤 데이터를 어떤식으로 처리하면 좋을지에 대한 고민을 많이 하게 되었다. 내가 이 프로젝트에서 해야하는 작업은 행정 구역들을 위치에 기반하여 하나의 집합을 만들고 그 집합들을 모아 지도에 각 셀로 표시하여 데이터를 시각화하는 작업이다. 모든 행정 구역들이 형식에 맞춰 데이터로 DB에 저장이 되어있어야 한다. 이 글은 내가 행정구역 데이터들을 규칙에 맞춰 처리하고 가공하여 사용자에게 어떻게 보여줄지를 고민한 일련의 과정들이 담겨있다. 1. 데이터 기준 잡기 이 작업에서의 핵심 포인트는 데이터의 기준을 어떤 것으로 잡는지 라고 생각한다. 위치라는 데이터를 보기 쉽고 수정 및 접근하기 용이하게 일정한 형식으로 나..

개발/기타 2025.06.18