본문 바로가기

분류 전체보기11

Command-query separation (명령 질의 분리) Command-query separation (CQS)는 프로그래밍에서 사용하는 중요한 설계 원칙 중 하나로, 함수를 두 가지 유형 중 하나로 분류하여 구현하는 것을 의미한다. 두 가지 유형은 커맨드(command)와 쿼리(query). 커멘드는 시스템 상태를 변경하는 함수이며 일반적으로 값을 반환하지 않는다. 쿼리는 시스템의 상태를 변경하지 않고 값을 반환하여 시스템의 정보를 알려준다. 이 원칙은 내가 구현하는 함수가 시스템의 상태를 변경하는지(커맨드), 아니면 정보만을 제공하는지(쿼리)를 명확히 구분하는 것을 중요시 한다.   왜 이 원칙이 중요한지에 대해 내가 상점을 운영하는 상황에서 손님의 질문/요청을 받는 상황을 예로 들어 설명해보겠다. 여기서 상점은 '시스템'이고 질문/요청이 '시스템의 공개 .. 2024. 8. 6.
노년과 죽음의 발걸음 "나는 언젠가 늙는다. 그리고 나는 언젠가 죽는다." 요즘 두 번 세 번 되새기는 말. 청춘이 그리 오래 남지 않았다는 절박함과 다가올 노년을 잘 대비해야겠다는 위기감이 다가온다. 노년의 건강한 정신과 건강한 육체는 누구도 채점하진 않지만 누구라도 들여다 보는 성적표와 같더라. 그렇게 잘 가꿨음에도 불구하고 사소한 사고로 깨질 수 있는 유약한 행복이기도 하더라. 미래를 유념하고 대비하되 현재를 즐기며 행복하게 사는 것을 잊지 말자. 2024. 8. 4.
내 실력은 어느 정도 일까? - 시니어 개발자의 고민 '나의 진짜 실력은 어느 정도일까?' 소프트웨어 개발 경력이 어느 정도 쌓이다 보면 누구나 하게 되는 고민이고 현 시점 나의 고민이다. 이번 글은 시원한 해결 방안 보다는 이 고민과의 처절한 싸움에 대해 쓰고 싶다.  나는 새로운 것으로의 (소소한) 도전을 즐기고 호기심이 많기에 최근 몇 년 간 다양한 프로젝트를 넘나들며 일을 해왔다. 심지어 분야도 가상/증강현실, 사이버보안, 웹 프로그래밍, 블록체인, 네트워크 등등 종잡을 수 없었다. 그러다 어느 회의에서 각자 자기를 소개하는 순간이 있었는데 엔지니어들 대부분은 '무슨 분야의 전문가'라고 자칭하였다. (실제 그 정도의 경력과 실력을 갖춘 존경스러운 전문가들이었음) 당황한 나는 짱돌을 굴려 그저 하고 있는 일들을 나열하고 턴을 종료했었는데 그 순간부터 .. 2024. 8. 2.
내 실력은 어느 정도 일까? - 주니어 개발자의 고민 어제 일을 시작한지 얼마 되지 않은 따끈한 주니어 개발자와 대화를 나눌 일이 있었다. 그의 가장 큰 고민은 자기 실력이 어디까지인지 가늠이 되지 않는 것이었다. 그로 인해 파생되는 부가 걱정들이 더 있었다.지금 하는 프로젝트를 기간 내에 성공적으로 완료할 수 있을까?산출물을 내가 원하는 수준까지 만드려면 기간이 얼마나 걸릴까?배우는 것과 일하는 것을 병행하는 것이 맞을까?대부분 '나는 할 수 없을꺼야'라는 부정적 결론을 이끌어내는 질문들이었다.  내가 그 분에게 실력 가늠을 위해 권했던 것은 업무 일지를 기록하는 것이었다. 아주 자잘한 것까지 내가 할 일, 하고 있는 일, 해낸 일, 하지 못한 일을 기록하는 것. 나의 개발 발자취를 남기는 것은 내 실력 파악을 위한 주요한 자료가 된다. 이 기록들이 쌓이.. 2024. 8. 1.
첫 글 이 첫 글을 쓰기까지 수많은 주저함과 나의 건달풍과 백만가지 핑계를 뚫는 지난한 과정이 있었다. 하지만 드디어 첫 글을 쓰고 있다! 스페이스 공감에서 본 수민이라는 아티스트의 인터뷰가 나를 움직였다. "왜냐하면 저희 같은 사람들은, 대중을 대상으로 음악을 만들고 있잖아요. 그렇기 때문에 많은 책임감이 뒤따른다고 생각하거든요.곡 작업을 하는 시간이 그로 인해 많이 늘어난 것도 사실이에요.저는 이런 신중을 가하려고 하는 저의 모습이 너무 좋고,그렇게 좋은 소리를 만들 수 있다면 저는 이제는 그걸로 만족하는 것 같아요."  글, 노래, 프로그램 코드를 넘어 창작자로써 귀감이 되고 너무 아름다운 태도다. 나도 개발자로써의 나의 모습이 너무 좋고, 더 좋은 코드와 시스템을 만들고 싶은 열정이 가득하다. 그런 나의.. 2024. 7. 31.