분류 전체보기
-
Git 명령어 정리&github카테고리 없음 2023. 9. 18. 00:34
Git init 저장소(repository) 만들기 Git status 현재 저장소 상태 출력 .gitignore 사용자별, 시스템별로 달라지는 파일의 경우 여러 사람이 진행하는 프로젝트를 할 시에 git으로 관리하지 않을 대상 기술 Git add 현재 디렉터리 하위의 모든 파일을 추가 *Staging : 변경 사항을 저장소에 저장하기 직전 단계에 올려놓는 개념 Git commit /User/project/ config --global user.email harvey@naver.com // 이메일 설정 /User/project/ config --global user.name "harvey" // 이름 설정 git commit -m "Project is revised" Git diff 직전 커밋 후 변경 ..
-
데이터 엔지니어링 수명 주기 전체에 걸친 기술 선택Data Engineer 2023. 9. 17. 23:48
데이터 기술 : 오픈 소스, 관리형 오픈 소스, 독점 소프트웨어, 독점 서비스 등 거의 모든 방식으로 사용할 수 있는 Turn-Key 제품으로 제공 "수명 주기 전체에 걸쳐 데이터를 운반하고, 최종 사용자의 요구에 따라 이를 제공하는 견고하고 신뢰성 높은 시스템 설계" - 아키텍처 : 비즈니스의 전략적 목표를 충족하는 데이터 시스템의 고수준 설계, 로드맵 및 청사진 데이터 엔지니어링 수명 주기 전반에 걸쳐 데이터 기술 선택 고려사항 팀의 규모와 능력 단순한 기술부터 복잡한 기술에 이르기까지 팀의 규모에 따라 솔루션에 할애할 수 있는 역량의 규모가 대략적으로 결정 Cargo-cult engineering : 소규모 데이터 팀이 대기업의 최첨단 기술에 관한 블로그 포스팅을 참고하여 모방하는 사례 소규모 팀이..
-
TransactionComputer Science 2023. 9. 6. 00:21
데이터베이스의 목적은 기업의 목표 달성을 위해 모순이 없는 정확한 데이터를 만들어내기 위함이다. 그러므로 데이터를 업데이트하고, 삭제하고, 추가하는 등의 DB 연산은 매우 중요하다. 예를 들어, DB 내 삽입/ 삭제/ 갱신 연산 중 하드웨어의 이상, 소프트웨어 오류 등으로 연산의 실행이 취소된 상황에는, DB를 트랜잭션 이전 상황으로 돌려놓아야 한다. 이 때 DB 연산 작업에 필요한 SQL 문들의 모임을 트랜잭션(Transaction) 이라고 한다. 트랜잭션의 원리 - 원자성, Atomicity : All or Nothing으로 정리할 수 있으며, 오류 발생 시 트랜잭션 이전 원래 상태로 복구해야 한다. - 일관성, Consistency : 트랜잭션 성공 이후 DB 내 데이터는 이전과 모순되지 않고 일관..
-
DMBOKData Engineer 2023. 9. 3. 17:44
비즈니스 메타데이터 : 비즈니스와 데이터 정의, 데이터 규칙과 로직, 데이터 사용 방법과 장소, 데이터 소유자 등 비즈니스에서 데이터가 사용되는 방식과 관련이 있다. 비즈니스 메타데이터는 데이터 엔지니어에게 데이터를 적절하게 사용하는 올바른 콘텍스트와 정의를 제공한다. 예를 들어, 데이터 엔지니어는 올바른 데이터를 사용해 비즈니스 메타데이터(데이터 사전 / 데이터 카탈로그)를 참조해서 어떻게 고객을 정의했는지 찾아볼 수 있다. * Data Catalog : 'highly scalable data discovery and metadata management service' 기술 메타데이터 데이터 엔지니어링 수명 주기 전반에 걸쳐 시스템이 생성하고 사용하는 데이터를 의미한다. 여기에는 데이터 모델과 스키마,..
-
DP 에러 찾기Programmers 2023. 9. 3. 15:58
동전 2 1 초 (추가 시간 없음) 128 MB 64987 19571 13830 29.412% 문제 n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은 같은 경우이다. 입력 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주어질 수도 있다. 출력 첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다. 다음 코드의 ..
-
Dynamic Programming 문제풀이Programmers 2023. 9. 2. 17:47
피보나치 수열 문제나 간단한 점화식을 세우는 쉬운 문제는 풀이가 가능하지만, 배열을 써야 하거나 추가적인 생각을 요하는 문제는 아직 많이 연습이 필요해 보인다... 포도주 시식 2 초 128 MB 128601 43844 31640 32.616% 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하..
-
코드 해석 _ LCS(9251)Programmers 2023. 8. 30. 23:46
문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. import sys input = sys.stdin.readline A, B = input().strip(), input().strip() a, b = len(A), len(B) cache = [0]*b # 누적 값을 저장할 cache 리스트 생성 for i i..
-
Airflow 사용해보기Data Engineer 2023. 8. 21. 01:57
Docker와 Docker-compose(v2 이상) 설치를 진행 후, 진행해보았다. 우선 docker 환경에서 에어플로우를 실행하기 위해서는 docker-compose.yaml 파일이 필요하다. 필요한 기본적인 파일은 에어플로우 공식 사이트(https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html)에서 확인이 가능하며, 터미널에서 다음과 같은 명령어를 실행해주면 된다. curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.7.0/docker-compose.yaml' # Licensed to the Apache Software Foundation (ASF)..