전체 글 33

🔥 [데이터 파이프라인 구축 프로젝트] 4. 기존 파이프라인 수정하기

현재 설계된 데이터 파이프라인은 특정 날짜의 데이터를 저장하는 구조이다. 하지만, 데이터 분석과 시각화를 진행하기 위해선, 현재 방식으로는 충분한 데이터를 확보하기 어렵다. 데이터 파이프라인 설계를 처음 시도하다 보니, "일단 해보자"는 마음으로 진행했지만, 이를 통해 설계상의 한계를 명확히 느낄 수 있었다. 특히, 초기 설계의 중요성을 크게 느꼈다. 데이터 파이프라인의 설계는 목적에 따라 매우 달라지며, 명확한 목표 설정 없이 진행하면 원하는 결과를 얻기 어려울  수 있다는 것을 배웠습니다. 따라서 이번에는 데이터 분석 목표를 명확히 설정한 후, 데이터 파이프라인을 재구축할 계획이다. 충분한 데이터를 수집하고 저장할 수 있는 구조를 설계함으로써, 이후의 분석과 시각화까지 진행할 예정이다.  1. 데이..

💻 [백준][파이썬] 1012 유기농배추

문제차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 되므로 서로 인접해있는 배추들이 몇 군데에..

알고리즘 2024.12.16

🔥 [데이터 파이프라인 구축 프로젝트] 3. RDS 구축하기

1. 개발 환경 현재 개발 환경은 다음과 같다.  1) 서버: AWS EC2 인스턴스라는 클라우드 환경 위에서 운영하고 있다.2) 데이터베이스:Docker 컨테이너 내부에서 MySQL이 실행되고 있다. 하지만 Docker 컨테이너는 EC2 인스턴스 내부에서 실행되므로, EC2 기준으로 로컬 환경에 해당한다.  그래서 정리하자면, 서버는 클라우드 환경이고,데이터베이스는 클라우드 서버(EC2)의 로컬환경에서 실행되고 있다. ⚠️ 문제점데이터베이스가 EC2 인스턴스의 로컬 환경에서 실행 중이기 때문에, EC2 서버가 종료되거나 Docker 컨테이너가 중지되면 자동화된 데이터 추출 및 적재 작업은 중단된다.  그래서 저번에 이유를 알 수 없이 Docker 컨테이너가 중지되어, 만들어둔 데이터베이스가 다 날아간 ..

💻 [백준][파이썬] 단계별로 풀어보기 - 스택, 큐, 덱(28278, 10773, 9012, 18258, 2164, 11866, 28279, 2346)

28278 스택2import sysinput = sys.stdin.readlineN = int(input())stack = []result = []for _ in range(N): command = input().split() # 1 X: 정수 X를 스택에 넣는다. if command[0] == '1': stack.append(int(command[1])) # 2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다. elif command[0] == '2': if stack: result.append(stack.pop()) else: result.append(-1)..

알고리즘 2024.12.12

🔥 [데이터 파이프라인 구축 프로젝트] 02. ETL 수행하기

영화진흥회 API를 살펴보며 데이터 수집 계획을 세우고, 데이터 추출, 변환, 적재를 진행할 예정이다.  1. 영화진흥회 APIAPI(Application Programming Interface)란?API는 특정 애플리케이션, 서비스, 또는 시스템이 다른 애플리케이션과 통신할 수 있도록 정의된 일련의 규칙애플리케이션 간의 계약: API는 두 애플리케이션 간의 데이터 전달 및 명령어 실행 방식(어떤 데이터를 보내야 하고, 어떤 방식으로 받을지)에 대한 규칙을 정해놓은 것. 이를 통해 두 시스템은 서로 무엇을 기대하는지 알 수 있게 된다.웹 API (RESTful API): 웹에서 가장 흔히 사용되는 형태로, HTTP를 통해 요청(request)과 응답(response)을 주고받는다. 예를 들어, 클라이언트..

💻 [백준][파이썬] 단계별로 풀어보기 - 집합과 맵(10815, 14425, 7785, 1269, 11478)

10815 숫자 카드 import sysinput = sys.stdin.readlineN = int(input())my_arr = set(map(int, input().split())) # 리스트를 집합으로 변환M = int(input())serch_arr = list(map(int, input().split()))# 기존 정렬과 비교하면서 일치하면 1 아니면 0 result = [1 if num in my_arr else 0 for num in serch_arr]print(' '.join(map(str, result)))리스트 컴프리헨션: 리스트를 순회하며 가지고 있으면 1을, 아니면 0을 출력 # 리스트 컴프리헨션 result = [1 if num in my_arr else 0 for num in ..

알고리즘 2024.12.09

💻 [백준][파이썬] 단계별로 풀어보기 - 정렬 모음(2750, 2587, 25305, 2751, 10989, 1427, 11650, 11651, 1181, 10814, 18870)

2750 수 정렬하기 N = int(input())arr = []for i in range(N): arr.append(int(input()))arr.sort()print('\n'.join(map(str, arr)))Enter 간격으로 들어오는 1차원 배열 입력받기 리스트를 특정 조건에 맞게 출력하기 - join 함수 이용 # join함수는 내부 요소들이 str이어야 함! 2587 대표값2 arr = []for _ in range(5): arr.append(int(input()))arr.sort()print(int(sum(arr)/5))print(arr[2]) 25305 커트라인 N, k = map(int, input().split())arr = list(map(int, input().split..

알고리즘 2024.12.05

💻 [백준][파이썬] 단계별로 풀어보기 - 2차원 배열 모음(2783, 2566, 10798, 2563)

💡1차원 배열 입력받기 arr = list(map(int, input().split()))띄어쓰기 간격으로 들어오는 경우list(): map의 결과를 배열로 반환 map(int, 리스트): 리스트의 모든 요소를 int로 변환 arr = []for i in range(N): arr.append(int(input()))Enter 간격으로 들어오는 경우  💡 2차원 배열 입력받기 arr = []for i in range(N): arr.append(list(map(int, input().split())))배열의 세로길이, 즉 열의 길이를 아는 경우에만 사용 가능2783 행렬 덧셈 A, B = [], [] N, M = map(int, input().split())for i in range(N): ..

알고리즘 2024.12.03

💻 [백준-2667] python3 단지 번호 붙이기

문제과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오.입력첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다.출력첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 단지내 집..

알고리즘 2024.12.02

[오블완] 작심삼주 오블완 챌린지 결산 ✨

어쩌다 보니 챌린지 100% 달성 ! 의도하진 않았지만, 진로에 대한 방향을 결정하고 기술 블로그를 해야겠다 마음먹은 즈음과 챌린지가 겹쳐서 11월 6일부터 27일, 오늘까지 22일간 매일 블로글 글을 작성했다. 칭찬해 !!!!!!!!!!! 나 자신, 너무 칭찬한다. 잘했다. 뿌듯하다. 하면 된다. 할 수 있다.  올 해도 얼마 안남았다. 이번 년도는 나에게 큰 변화가 많았던 한 해다. 좋은 일도, 안 좋은 일도 있었지만 어쨌든 좋은 한 해였던 건 분명하다. 내년을 기대하며 남은 올 해도 잘 보내고 싶다.

생각 2024.11.27