아래의 주소로 블로그 이전 합니다 https://dev-jeongmin.tistory.com/ 개발의 정민 비전공자의 개발자 되기 프로젝트 dev-jeongmin.tistory.com
분류 전체보기

2023년 데이터 엔지니어 로드맵 Roadmap for Data Engineering 2023 위 링크의 글을 번역한 후, 요약한 글입니다. 해당 글에서는 데이터 엔지니어가 되기 위해 필요한 기술을 기본 수준에서 고급 수준까지 다음의 3단계로 알려주고 있습니다. 다른 분야에서 데이터 엔지니어링으로 경력을 전환하려는 사람 몇 가지 기본 사항을 알고 앞으로 나아가는 방법을 알고 싶은 사람 경험이 있고 경력을 쌓고 싶은 사람 Section 1 - 미지의 탐험 제일 먼저 첫 번째 단계에 있는 즉, 비기술 직업에 종사하고 있는 사람들이거나 학생이나 신입이거나, 다른 기술 직업에서 전환하려는 사람들까지 다양한 사람들이 비슷한 어려움을 겪습니다. 이러한 범주에 속한다면, 먼저 컴퓨터 과학(CS)기초를 숙달해야 합니다..

기존에 SQL에 대한 조금의(?) 지식이 있었기 때문에 프로그래머스의 문제를 바로 도전해봤다. SQL 고득점 kit 문제를 풀어가던 도중 SELECT문 관련 문제들을 풀고 있었는데, 이전에 배웠던 내용들을 까먹은 거 같아서 복습 겸 정리해보려고 한다. SELECT statement SELECT 문은 특정 테이블에서 데이터를 조회하기 위해 사용한다. 다양한 절과 함께 사용할 수 있다는 특징을 갖고 있다. → 예) ORDER BY, DISTINCT, WHERE, LIMIT, LIKE, GROUP BY 우선 SELECT 문의 기본 형식은 다음과 같다. SELECT column1, column2 FROM table_name; SELECT 절에서 컬럼 or 쉼표로 구분된 컬럼 목록을 지정한다. FROM 절에서 데..
2023년에 데이터 엔지니어가 되는 방법 How to Become a Data Engineer in 2023: 5 Steps for Career Success 다음 글은 위의 게시글을 번역한 후, 요약해서 정리한 글입니다. 저는 요즘 데이터 엔지니어가 되기 위해서는 어떻게 공부해야 하는지 고민을 하고 있는데요. 해당 글을 통해 데이터 엔지니어의 역할과 책임, 일상적인 작업에 대해 알아보고, 왜 데이터 엔지니어로 일 하는 것이 좋은 선택인지 살펴 볼 예정입니다. 더불어 데이터 엔지니어가 되기 위해서 필요한 기술과 자격 요건을 살펴 보려고 합니다. The Data Engineer Learning Path 먼저 간략하게 기술적인 데이터 엔지니어의 학습 경로는 다음과 같습니다. Python 및 Scala 와 같..

반성 우선 5월에 계획했던 것들 중 이뤘던 것은… ssafy 1학기 최종 관통 프로젝트 처음으로 그동안 배웠던 것을 기반으로 A to Z 만들어낸 프로젝트였다. 프로젝트를 진행하면서 중간에 날리는 등 우여곡절이 정말 많았다… 특히 프론트엔드를 희망하지 않았던 터라 Vue가 익숙하지 않기도 해서 초반에 시간이 굉장히 많이 소요됐었다. 그래도 페어에게 민폐를 끼치지 않도록 잠을 줄여가면서 해서 그런지 기능은 거의 다 구현했지만… 디자인 하기엔 시간이 없어서 아쉬웠다. 디자인만 어느 정도 되었다면 나름 볼만 했을 프로젝트라서 정말 정말 아쉬웠지만 그래도 얻어가는 건 Vue에 대한 이해도가 높아지는 시간이었다. ssafy 1학기 무사 수료 완료! 매월, 매주 마다 쳤던 시험 평가 점수나 IM 취득 등 수료에 필..

(글을 쓰다보니 주절주절 말이 많아졌다… 무려 2주 전부터 적던 글이지만 업로드 하겠다.) 기점 4년 간 휴학 없이 올해 2월에 대학을 졸업했다. 운 좋게 ssafy 라는 교육 프로그램에 합격해서 교육을 들은 지 4개월이 지나 1학기 수료까지 약 한 달 정도 남았다. 프로그램을 통해서 여러 지식을 얻었지만 정작 내가 하고 싶은 직무에 대한 스킬이 맞는가? 라는 의심이 들었다. (아직 잘 모르는 걸 수도…) 아무튼 대학생 때부터 쭉 데이터와 관련된 직무를 가고자 했으니, 그에 맞춰서 차근차근 준비해보려고 한다. 졸업 하고 백수 상태인 지금. 취업을 준비하는 입장에서 앞으로의 우선 순위와 방향에 대해 정리하려고 한다. 올해랑 내년까지 취업을 준비하는 시기로 잡고, 넉넉잡아서 2024년 하반기에는 취업하는 것..
이전에 풀었던 문제들을 다시 풀면서 무엇이 어려웠고, 어느 부분에서 막혔는지 어떻게 풀었는지 적어보려고 한다. 문제 [D2] 16504_Gravity 가로 N, 세로 100 크기의 방에 상자가 쌓여있다. 90도 회전 했을 때 낙차가 제일 큰 값 출력해라. 입력 및 출력 입력 9 7 4 2 0 0 6 0 7 0 출력 #1 7 접근 자신 보다 작은 수를 세서 cnt += 1 그 중 최댓값(maxV)과 비교해서 maxV 갱신 풀이 코드 T = int(input()) for tc in range(1, T + 1): N = int(input()) box = list(map(int, input().split())) maxV = 0 for i in range(N): cnt = 0 for j in range(i + 1..

알고리즘 문제를 풀다가 break 와 exit() 의 차이에 대해 헷갈렸다. 나름 Python 에 대해서 잘 안다고 생각했지만… 여전히 헷갈리는 게 많다고 느꼈다. 더불어 흐름 제어 키워드에 대해서 잘 모르고 있었다는 걸 알게 되었다. 그래서 내가 보기 위해서 Python의 흐름 제어 키워드에 대해서 정리해보겠다. break 반복문을 중단하고 싶을 때 사용한다. for , while 에서 현재(가장 가까운) 반복문을 종료한다. 예시 코드 for i in range(10): if i == 5: break print(i) print('loop 종료') # 실행 결과 ''' 0 1 2 3 4 loop 종료 ''' i == 5가 되었을 때 즉시 반복문을 종료한다. 반복문을 빠져 나왔기에 5~10까지 출력되지 않..
분할 정복(divide and conquer) 알고리즘 개념 큰 문제를 작은 부분 문제로 나누어 해결하는 알고리즘 기법이다. 재귀적으로 구현한다. 대표적인 예시로는 병합 정렬(Merge Sort), 이진 검색(Binary Search), 거듭 제곱(Exponentiation), 퀵 정렬(Quick Sort)이 있다. 이 외로는 행렬 곱셈(Matrix Multiplication), 최대 부분 합(Maximum Subarray)이 있다. 설계 1) Divide(분할): 주어진 문제를 분할한다. 단, 문제를 적절한 크기로 분할하는 것이 중요하다. (최소 2개 이상) 2) Conquer(정복): 각 하위 문제들을 재귀적으로 해결한다. 나눌 수 없으면 탈출 조건을 설정하고, 문제를 해결한다. 3) Combine(..

- 탐색 알고리즘 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정을 의미한다. DFS, BFS는 그래프 탐색 알고리즘에 속한다. - 그래프 노드(Node)와 간선(Edge)으로 이루어진 자료구조의 일종 간선으로 연결되어 있는 노드들을 인접하다(adjacent)라고 표현된다. 구현하는 방식 → 인접 행렬, 인접 리스트 인접 리스트 graph = [ [1, 2, 3], [0, 3], [0, 3], [0, 1, 2] ] 각각의 인덱스에 해당하는 노드에 연결된 노드들을 리스트 형태로 저장하는 방식 연결 리스트를 활용하여 표현하는 방식 그래프 내에 적은 숫자의 간선만을 가지는 희소 그래프의 경우 인접 행렬 graph = [[0, 1, 1, 1], [1, 0, 0, 1], [1, 0, 0, 1], [1, 1, ..

기본적인 세팅은 이전 글에서 다루어봤다. 본격적으로 커뮤니티 웹 페이지를 만드려고 한다. 필요한 기능들은 다음과 같다. 메인 페이지(Main) : 전체 글 목록을 확인한다. → 글 상세보기가 가능하고, 작성할 수 있도록 연결한다. 상세 페이지(Detail) : 각각의 글 내용 및 정보를 확인한다. → 글을 수정하고, 삭제할 수 있도록 한다. 글 작성(create), 수정(update) 페이지 유저 로그인, 로그아웃 기능 회원 정보 관리 - 가입, 탈퇴, 수정, 비밀번호 변경 4. 메인 페이지 생성 Django에서의 코드 작성 순서 데이터의 흐름 순서인 URL → View → Template 순으로 작성한다. URL 여러 애플리케이션을 구분하기 위해 app_name 을 설정한다. views의 index를 ..

1. Django 시작하기 프로젝트 폴더에 가상환경 생성 $ python -m venv venv $ source venv/Scripts/activate 프로젝트를 시작할 새 폴더를 만든 후, 해당 폴더에 가상환경을 생성한다. (venv)가 뜨면 가상환경에 접속 된 것 단, Mac에서는 Scripts가 아닌 bin으로 해야 한다. 비활성화 하는 방법: deactivate 가상환경 패키지 설치 $ pip install django==3.2.18 $ pip freeze > requirements.txt 내 프로젝트를 다른 사람이 실행하려면? → 가상환경 패키지 목록을 저장해두어야 한다. $ pip install -r requirements.txt 반대로 다른 사람의 파일로부터 패키지를 사용하기 위한 방법 2...