본문 바로가기

Computer Science/Devops

프로젝트의 방향성이 모호할 때는 어떻게 해야할까 신규 프로젝트를 진행하다보면 자꾸 스펙이나 방향성이 틀어지는 경우가 생긴다. 구현하다 보니 이게 좋아보이고, 이렇게 하는게 더 나은것 같은데? 이러한 것들이 반복되면 수정하고 기존에 개발했던 것들을 갈아 엎는 경우가 생긴다. 그러다보면 점점 방향성이나 형상이 모호해진다. 그래서 무엇이 문제일까 고민하다 스스로 답을 내린 결론은 다음과 같다. 예전에는 몰랐던 초기에 상위 설계라는 것의 중요성을 깨닫게 된다. - 꼭 필요한 기능, 혹은 필수 요구 성능 또는 수치 등 - 실제 수행되는 시나리오는 어떻게 되는가 이러한 것들을 초반에 명확하게 설정하고 프로젝트를 진행해야 구현관점에서 무엇은 어디까지 하고말지 결정하기가 쉬워진다. 구현하는 사람이 너무 생각이 많아지면 그것 또한 고통이다. 본인이 잘 만들고 있는지에.. 더보기
[coursera]Introduction to Git and GitHub 강의 수강 기록 1주차 솔직히 Git이나 VCS에 대한 기본 개념은 있기 때문에 1주차는 거의 놀면서 들었다.(개꿀) 주로 정의에 대해 나오는데 평소에 들어본적 없는 단어 정리 working tree: 우리가 작업하는 일반 폴더 index: working tree에서 저장소로 올리기 전에 기록하는 공간 staging: index에 파일 상태를 기록하는 것, commit 전에 staging area에 변경사항이 있어야함 git directory: 마치 데이터베이스처럼 동작하며 Git의 모든 변경사항을 트래킹 한다 과제도 그냥 따라하기만 하면 끝! 2주차 내가 이미 아는 내용은 패스하고 몰랐던 내용 중 유용해 보이는 것만 정리 commit -a: tracking하고 있는 파일에 변화가 있을 경우 모두 add하고 commit.. 더보기
Airflow 주요 개념 정리 사용을 위한 기본 개념 DAG: AirFlow에서 실행할 작업들은 순서에 맞게 구성한 워크플로우를 의미, Directed Acyclic Graph(유향 순환 그래프)의 약자로 DAG를 구성하는 각 작업들은 TASK라고 한다. TASK: DAG를 구성하는 각 작업들, TASK는 Operator, Sensor, Hook 등을 사용할 수 있다. Operator: 지정한 작업을 수행하는 실행 도구 ( ex. python operator, bash operator, postgres operator) Sensor: 어떤 결과를 만족하는지 주기적으로 체크할 때 사용 ( ex.데이터 파이프라인에서 이전 작업의 결과물이 잘 생성되었는지 확인) Hook: DB나 서비스 같은 외부 시스템과 통신하기 위한 인터페이스를 제공하.. 더보기
[Git] 깃에서 브랜치 패턴으로 삭제하기 로컬에서 git으로 개발하다보면 PR하고 남은 branch가 쌓이가 된다. 그렇게 많이 쌓였을 때 한번에 지우는 방법을 정리해둔다. 일단 grep을 통해 본인이 지우고자 하는 패턴의 grep 결과를 확인한다. git branch | grep "feature" feature/upgrade feature/new_instance feature/upgrade1 feature/upgrade2 feature/upgrade3 위에서 확인한 grep의 결과를 argument로 삭제를 수행하면 끝 git branch | grep "feature" | xargs git branch -D 실수로 작성하던 브랜치를 삭제하면 안되니까 꼭 리스트를 잘 확인해서 지우는게 좋다. 더보기
[DevOps] SW 개발 환경(local, dev, staging, QA, production) 현업에서 서비스 개발을 하다보면 개발 환경에 대한 이해가 필요합니다. 대기업이나 안정성이 매우 중요한 프로젝트에서는 보통 6가지 개발 환경으로 구성합니다. (local- > dev -> integration -> staging -> QA -> production) 모든 환경을 모두 구성할 필요는 없지만 최소한 3가지 개발환경 (dev -> staging -> production)은 구성합니다. Local 개발자가 본인의 PC에서 개발하는 환경을 말합니다. 요즘은 보통 각각의 개발자가 git에서 master/dev 브랜치를 local machine으로 clone하여 개발하게 됩니다. local 환경에서 가장 중요한 부분은 개발도구나 라이브러리에 대한 통합이 필요하다는 점입니다. 그렇지 않으면 local에서.. 더보기