이번 주는 리눅스의 전반적인 명령어들을 배우고, 프로젝트를 마무리할 수 있도록 시간이 제공되었다.
리눅스의 경우 파이프라인, 쉘 스크립트, Redirection, 아카이빙 등 기존에 많이 다뤄보지 못했던 내용까지 커버하는 수준이었기에 기억해야 할 문법적인 부분이 꽤 많았고, 수업시간에 노션에 메모하며 따라가기 조금 버거웠다. 하지만 그만큼 기존에 알지 못했던 부분에 대해 경험할 수 있었기에 만족한다.
금요일은 프로젝트 마감일이었다. 기획 + 요구사항 명세 + DB모델링 및 구현 + 테스트 케이스 작성 레벨의 프로젝트였기에 비교적 수월하게 마무리할 수 있을 줄 알았으나, 금요일 프로젝트 마무리까지의 2일간 8시간쯤밖에 자지 못했을 정도로 작업량이 많았다.
자세한 프로젝트 후기는 따로 회고를 남기는 방향으로 생각중이다.
[수업 내용]
이번 주는 리눅스의 명령어에 대해 중점적으로 배웠다.
수업한 내용을 다 정리하는 것은 딱히 의미가 없다고 판단하여,
기존에 잘 몰랐던 내용 위주로 정리해보고자 한다.
- $ sed [옵션] '동작/패턴/치환문자열/' 파일명
sed 's/abc/xyz/' test.txt
->test.txt 파일 내 'abc'를 'xyz'로 치환하여 출력
- umask
파일은 666, 디렉토리는 777이 가질 수 있는 기본적인 최대 권한이며, 이것에서 자신의 권한 값을 뺀 값을 출력하는 것이 umask
ex) 파일에 대해 664권한(rw-rw-r)을 가지고 있다면 umask값은 002가 나오게 됨
- 아카이빙
파일, 디렉토리를 하나의 파일로 묶는 과정이며, 이 과정 이후 압축 과정이 따로 진행됨
tar cvf source.tar *.c -> .c 로 끝나는 파일들을 source.tar로 묶음
이후 gzip, xz, bzip2등 정말 다양한 압축 기법을 통해 아카이브 압축을 진행할 수 있음
- MariaDB Replication(Master - Slave)

비동기 복제 방식을 통해 데이터를 저장
Master 서버에서 업데이트 된 데이터는 Slave 서버(Read-Only)에 자동으로 복제됨
-> 가용성 높은 데이터베이스 시스템을 구축하기 위한 여러가지 방식들에 대해 추가적인 학습을 진행해볼 계획
[프로젝트 마무리]
이번 주는 마무리 단계로 작성한 ERD를 바탕으로 실제 데이터베이스 구축 + Unique, Check 제약 조건 구현 + 비즈니스 로직 구현을 위한 Trigger, 입력 파라미터를 변경해가며 테스트하기 용이한 Stored Procedure를 작성하였다.
또 구현된 DB에 대해 일어날 수 있는 테스트 케이스들을 작성하여 잘 수행하는지 확인하였다.
이 모든 내용은 GitHub Flow를 통해 간단하게 Main과 여러 Feature 브랜치들을 통해 관리하였다.
자세한 내용은 프로젝트 회고에서 다룰 예정이다.
[GitHub Flow를 활용한 협업]

Git 협업 구조에 대해서는 비교적 경험이 많은 본인이 주로 설계하고 팀원에게 협업 방식을 알려주는 식으로 진행했다.

요구사항 명세서에 따른 대분류/중분류/소분류를 각각 [이슈 분류]/이슈/commit 레벨로 관리하였고,
각 이슈 안에 소분류에 따른 세부적인 기능 설명을 적도록 하였으며,
이슈(중분류)에 각 커밋(소분류)가 연동될 수 있도록 커밋메시지에 #<이슈번호>를 지정하였다.
또한 전체적인 디렉토리 구조를 아래와 같이 관리하였다.
root/
│── README.md
│── DDL/
│── DML/
│ ├── UserManagement/
│ ├── UserRecord/
│ ├── UserBlock/
│ ├── UserMyPage/
│ ├── UserFollow/
│ ├── CommunityManagement/
│ ├── ReportManagement/
│ ├── Post/
│ ├── Comment/
│ ├── Review/
│ ├── EventView/
│ ├── EventDetailView/
│ ├── DummyData/
│── Trigger/
│── Procedure/
│── Docs/
DML 폴더의 각 세부 폴더들은 요구사항 명세서의 중분류에 대응되며,
브랜치는 대분류에 따라
feature/user, feature/manager, feature/post, feature/event로 주로 나누어 관리하였다.

최종적으로는 각 브랜치에서의 PR을 통해 Main 브랜치로 합치는 과정을 통해 깔끔하게 마무리 할 수 있었다.
조원들 대부분이 Git을 통한 협업 경험이 부족했기에, 1대1로 마킹해가며 부족한 점을 알려주고, 또 실수(커밋 메시지 형식 위반, Main브랜치가 아닌 다른 feature 브랜치에서 브랜치 생성 등)를 바로 잡아주는 경우가 정말 많았다. 그래도 헌신적인(?) 노력 끝에 다들 Git에 대해 자신감을 갖게 된 것 같아 기쁘다.
아래는 작업한 GitHub링크이다.
https://github.com/be15-beyondBBD/be15-1st-BeyondBBD-CultureRecord
GitHub - be15-beyondBBD/be15-1st-BeyondBBD-CultureRecord: 김운경 / 김진영 / 박장우 / 박준서 / 이승재 / 이주미
김운경 / 김진영 / 박장우 / 박준서 / 이승재 / 이주미. Contribute to be15-beyondBBD/be15-1st-BeyondBBD-CultureRecord development by creating an account on GitHub.
github.com
[기반기술 단원평가]

생각보다는 처참한 점수를 받고 말았다 ㅠㅠ
Linux : 6/10
DB : 9/15
로 총 25개 중 10개를 틀려 60점인데
다시 곰곰히 생각해보니 아 그렇구나! 하는 문제들이 대부분이었다..
무엇보다 내 실력, 지식의 견고함이 부족한 것이겠지만 수면 시간 부족으로 인한(전전날 5시간, 전날 3시간 수면) 컨디션 난조가 잘못된 문제 해석으로 이어진 경우 + 머리가 잘 돌아가지 않음 + 문제가 진짜 모르는 내용인 경우(Group By없이 Having 절 사용한 경우)등의 핑계도 대볼 수 있을 듯 하다..
무엇보다도 3월 8일에 있을 SQLD시험의 기출문제로 보이는 유형의 문제도 다수 출제되었는데,
DB에서 틀린 부분은 죄다 SQLD 기출에서 틀렸다..
SQLD 솔직히 만만하게 생각하고 있었는데, 조금은 긴장하고 차분하게 준비해나가야하지 않을까라는 생각이 자동으로 들었다.
[느낀 점]
솔직한 심정으로 부트캠프에 등록할 즈음만해도 내가 9 to 6 + 알파의 스케쥴을 온전히 집중하고 소화할 수 있을지에 대한 두려움이 컸다. 하지만 프로젝트를 진행하며 9 to 10도 눈 깜짝할새에 지나가는 경험을 하게 되었고, 몸은 힘들지만 하루하루 열심히 살았다는 즐거움이 가득했던 기간이었던 것 같다. 앞으로 좋은 개발자가 되기 위해 끊임없이 노력하여, 꼭 열정 넘치는 동료들과 같은 목표를 향해 협업하는 즐거움을 만끽하고 싶다.
'Beyond SW > 주간 회고' 카테고리의 다른 글
| 한화시스템 Beyond SW캠프 15기 6주차 회고 (1) | 2025.03.03 |
|---|---|
| 한화시스템 Beyond SW캠프 15기 5주차 회고 (0) | 2025.03.02 |
| 한화시스템 Beyond SW캠프 15기 3주차 회고 (2) | 2025.02.09 |
| 한화시스템 Beyond SW캠프 15기 2주차 회고 (2) | 2025.02.02 |
| 한화시스템 Beyond SW캠프 15기 1주차 회고 (1) | 2025.01.26 |