
SW 캠프 2주차는 설 연휴와 겹쳐 교육을 받은 것은 금요일 하루 뿐이다. 그래서 연휴를 어떻게 보냈는지가 주된 내용이 될 것이다. 우선은 금요일 강의를 통해 배운 내용을 정리해본다.
SQL - DDL, DML, TCL
SQL이란 데이터를 정의하고 조작하고 제어하는 구조화된 질의 언어(Structured Query Language)이다. 지난 주까지 SELECT 문을 통해 데이터를 조회하는 법에 대해 배웠다면, 이번주에는 데이터 구조를 정의(DDL)하고, 데이터를 조작(DML)하는 법, 그리고 데이터의 조작과 밀접한 관련이 있는 트랜잭션 개념을 학습하고, 이를 제어(TCL)하는 법을 배웠다.
CREATE), 수정(ALTER), 삭제(DROP)INSERT), 갱신(UPDATE), 삭제(DELETE)COMMIT), 복구(ROLLBACK)이어서 연휴에 한 일을 적어본다.
금요일까지의 학습 내용 중 Notion 개인 스터디 정리가 완료되지 않은 부분이 있어, 주말을 이용해 이를 완료하였다.
첫 번째 프로젝트의 주제 선정을 위해 참고 자료를 찾아보고 오기로 결정되어, 기존에 진행된 본 캠프의 프로젝트 저장소를 찾아보았다. 프로젝트의 진행에 대해 참고가 되는 것은 물론이고, 특히 자유 주제로 진행되는 프로젝트라면 주제 선정이 반 이상은 간다고 생각하기에 어떤 주제로 진행되었는지를 확인해보고자 하였다.
데이트, 여행, 운동 등 일상과 관련된 서비스를 기획한 경우가 많았고, 한화시스템 부트캠프 전 기수 커뮤니티 등 부트캠프에 특화된 주제를 선정한 경우도 있었다. 이전에 부트캠프 면접을 봤을 때도 그렇고 앞으로도 면접에서 어떤 프로그램을 개발하고 싶냐는 질문을 받는 경우가 꽤 있을텐데, 그때 좋은 답변을 할 수 있도록 이 주제에 대해서도 고민해봐야겠다.
본 캠프 GitHub 페이지에서 검색을 통해 각 프로젝트 저장소에 접근할 수 있지만, 매번 찾아볼 때마다 검색하려면 좀 번거롭다는 생각이 들어 엑셀 파일로 정리했다.

간단한 키워드를 적고 프로젝트에 참고할만한 인상적인 특징이 있다면 함께 기록해두었다. 작성한 파일은 프로젝트를 함께 할 팀원들에게도 공유하였다. 내가 편하려고 시간 들여서 만든 김에 다같이 편하면 좋으니까?

혼자서 작업하기에는 양이 꽤 있기도 해서, 다음 프로젝트부터는 조원들과 이 양식을 공유하고 분담하여 채워봐도 좋을 듯하다. (기수당 5팀 * 14기로만 계산해도 70개이다. 실제로는 조금 더 많았음)
이번 주말 안으로 조장님이 만들어두신 노션 페이지에 주제 고민해본 내용을 공유해달라고 요청 받았으니, 연휴에 생각해본 내용을 정리해서 업로드할 예정이다.
이전에 수학 공부했던 내용들의 경우 문서화를 잘 해두지 않아서 나중에 기억나지 않을 때 찾아보기 어려웠던 일이 많았다. 개발 공부를 하면서도 문서화, 기록하는 습관의 중요성을 많이 느꼈기에 회고 작성에 꽤 공을 들이고 있다. 특히, 명확한 의사소통을 중요하게 생각하기에 최대한 읽기 쉽고 이해하기 쉽게 작성하려고 노력한다. 명확한 의사소통이 일상 생활에서 중요함은 물론이고, 나의 이전 전공 등에서도 모두 강조하는 내용이다. 세부적으로는 차이가 있으나, 다음에 작성한 내용 모두 의사소통의 명확성, 일관성과 밀접한 관련이 있다.
1. 수학: "잘 정의된"(well-defined) 함수/용어/개념
2. 교육/평가: 좋은 발문
3. 개발/기획: 요구사항 전달 시 명확성, 일관성 중시
나중에 다시 찾아볼 때 도움이 될 수 있도록 앞으로도 회고는 열심히 작성할 계획이다.
금요일 수업이 끝나고 오후 6시 30분부터 PCCE 시험이 예정되어 있었기에, 연휴에 PCCE 기출문제와 프로그래머스 문제들을 풀며 공부하였다. 코드 작성 문제는 전체 코드가 곧 정답이기에 코드만 보면 되지만, 빈칸 채우기 및 디버깅 유형은 다음과 같이 .md 파일을 통해 문제에 제시된 코드와 제출한 정답을 모두 관리하였다.

복잡한 문제의 경우 아래 예시와 같이 관련 코멘트를 남기기도 했다.
math.Max(a, b)를 사용해 푼 문제: "길이 n인 array에서 max를 구하는 로직도 상기해보기"
주로 python으로 공부했었다보니 java에서 자료형 간 형변환을 하거나 메서드의 서로 다른 동작에 적응할 필요가 있었다. (예시로 python의 경우 max(iterable) 혹은 max(*iterable)을 이용하여 위에 언급한 n개 짜리 max를 바로 구할 수 있다.) 이에 적응하기 위해 PCCE에 응시하기 전까지 프로그래머스에 등록된 20개의 기출문제, 20개의 기초문제, 6개의 입문 문제로 총 46문제를 풀고, 조원의 블로그에 정리된 코드를 참고하기도 했다. 그렇게 준비하고 응시한 결과...

마지막 문제는 시간이 없어 풀지 못했고, 점수를 보아하니 다른 코드 작성 문제도 일부 테스트 케이스만 통과한 잘못된 코드였던 듯하다. 기출문제를 풀어보며 50분 안에 하기에 좀 빠듯하겠다고 생각했고 역시나 마냥 쉽지는 않았다. 아주 만족스러운 점수라고 하긴 어렵지만 그래도 빈칸 채우기, 디버깅 문제를 잘 해결한 부분은 의미가 있었다고 생각한다. 다음에 다시 응시할 기회가 생기면 고득점에 도전해봐야겠다. 아니면 아예 PCCP 고득점 노려보기?
이번주는 수업이 하루 뿐이었다보니 크게 많은 문제 상황을 겪지는 않았다. 사소하지만 겪었던 문제 상황 하나를 공유해본다.

CHECK () 뒤에 ,가 하나 붙어있는 데 그게 원인이었다.
FOREIGN KEY team_code REFERENCES team_info(team_code), -- 문제의 코드
FOREIGN KEY (team_code) REFERENCES team_info(team_code), -- 올바른 코드
이렇게 쉼표, 괄호 누락 등의 단순한 오류는 chatGPT가 잘 잡아주므로, 보안에 문제가 없는 코드의 경우 AI의 힘을 적극적으로 활용할 수 있다. 물론 명령어를 잘 숙지하여 실수의 빈도를 줄이는 게 최선!
명절 연휴이다보니 가족들과도 시간을 보내느라, 계획했던 만큼의 일을 소화하지는 못해서 조금 아쉽다. 그래도 부트캠프 덕분에 주어진 일을 쳐내느라 오랜만에 연휴를 알차게 보낸 것 같아 뿌듯하다. 공부에만 집중할 수 있는 환경이 갖춰진 만큼, 이 기회를 살려 많이 성장해보겠다.
수강 인원이 확정되어 교육장 출입을 위한 출입증이 발급되었다. 진정한 15기가 된 기분? 까먹고 두고 오거나 잃어버리지 않도록 잘 관리해야겠다.

이야 ~! 감탄이 나오는 글입니다!
글만봐도 내공이 느껴집니다!! 6개월뒤가 궁금해지는 진웅님 화이팅!