본문 바로가기
반응형

전체글621

100미터 17초에 달리기 최근에 교육생분들을 대상으로 신입 개발자를 준비할때 있었던 일들에 대해 이야기를 나누는 시간을 가졌다. 이제막 개발을 시작하게된 분들도 계시고, 컴퓨터 공학을 전공했지만 계속해서 취업에 실패해서 교육기관에 참여하신분들도 계시고 다양했다. 공통된 질문 기저에 깔린 걱정은 "내가 다른 사람에 비해 부족한데 어떻게 극복하느냐" 였다. 그래서 그에 대한 내 생각을 전달드렸다. 국비교육기관이나 부트캠프에서 여러 동기들과 함께 개발을 하거나, 신입 개발자로 입사하여 비슷한 연차의 다른 개발자들과 같이 일을 하다보면 내가 썩 영민하진 못하다는 생각을 하게 된다. 이클립스는 커녕 Java도 처음 하는 신입 개발자분이 나보다 훨씬 더 좋은 퀄리티로 과제를 해결한다던가 중학교부터 코딩을 시작해서 나와 같은 나이에 이미 개.. 2023. 6. 4.
Number와 boolean 은 최대한 Not Null로 선언하기 테이블 설계시 종종 받는 질문 중 하나가 Boolean과 Number 컬럼의 Not Null 유무이다. 비즈니스적으로 기본값이 있는 경우가 아니면 유연하게 하기 위해 nullable 로 선언하는 경우를 자주 본다. 테이블의 Boolean과 Number 타입 컬럼을 nullable 로 설정하면 여러 문제가 발생할 수 있어서 가급적 추천하지 않는다. 대표적으로 다음과 같은 문제가 있다. 1. 혼란스러운 의미 컬럼을 nullable 로 설정하면 기본값이 null 이 되므로, 데이터의 의미가 굉장히 혼란스럽게 된다. 예를 들어, boolean 컬럼이면 값이 true, false, null 세 가지 상태가 될 수 있다. 이는 '참', '거짓', '미확인' 의 세 가지 상태가 된다는 것이다. (일부 상황에서는 유용.. 2023. 6. 2.
도둑맞은 집중력 2번의 연휴 동안 (5월 5,6,7 / 27,28,29) 도둑맞은 집중력을 읽었다. 외부 발표에서 산만함을 관리하기 위해 여러가지 시도를 하고 있다는 이야기를 했는데, 산만함과 집중력에 대해서 훨씬 더 정확하고 좋은 내용을 담고 있다는 이야기에 보게 되었다. 이 책이 특히나 좋았던 것은 명확하게 이것이 맞다 라고 이야기 하지 않는다. 반대 사례에 대해서도 이야기하면서 어디까지나 논문과 실험이고, 반대 의견도 있기 때문에 각자의 판단에 맡기는 것이 좋았다. 저자의 생각에 맞추기 위해 저자가 동의하는 부분만 발췌하는 다른 책들과 달라서 더 신뢰가 생기면서 읽었다. 아래는 이 책 전체에서 가장 기억에 남는 부분들만 정리했다. 좋은 내용이 워낙 많아서 가능하면 꼭 구매해서 전체를 읽어보시길 추천한다. 6장의 빅.. 2023. 5. 30.
스타트업이 받을 수 있는 클라우드, SaaS 혜택 요즘 스타트업 제품팀과 종종 미팅을 한다. 제품은 이미 출시되었는데, 이제 시작 단계라 계속해서 속도전으로 기능을 붙이는 팀들이다. 대부분 전체 팀원이 10인 이하이거나 개발팀원이 3 ~ 7이다. 그러다보니 고정비에 대한 고민을 항상 듣게 된다. 트래픽이나 가입자수는 아직 보잘 것 없고, 수익은 0원인데, 5명 ~ 10명의 급여로 매달 수천만원씩 나가고 있는 상황. 이런 상황에서 한달에 클라우드 사용료로 30만원이라도 나오게 되면 이걸 어떻게 아낄 수 없을까 하는 고민이 먼저 든다. (EC2, ALB, Route53, CloudFront, RDS, Redis, S3 등 최소한의 구색이라도 갖춘 경우) 물론 몇천만원씩 급여를 주니 이정도는 감안할 수 있는거 아니야? 라고 할 수 있다. 하지만… 월급 200.. 2023. 5. 20.
나를 위해 남을 도와주기 3년차가 안되던 주니어 개발자일때를 돌이켜보면 "과연 내가 이 팀에서 필요한 사람인가" 하는 의문이 들때가 많았다. 당시에 내가 속해있던 팀은 연차에 관계 없이 잘하는 사람들이 많았다. 나보다도 어린, 나보다도 연차가 낮은 개발자분들이 나보다 훨씬 더 좋은 코드로 훨씬 더 빠른 속도로 일을 마무리 하는 것을 볼때마다 계속해서 나와 비교를 했다. 좋은 팀을 이야기할때 "개인이 풀스택일 필요는 없지만, 팀은 풀스택이어야 한다"는 말을 자주 듣는다. 한 사람이 모든 영역을 잘할 수 없기 때문에, 각자가 고유의 전문 영역을 가지고 서로의 부족함을 채워준다는 의미로 해석했다. 하지만, 이 팀에서 내가 무엇을 채워줄 수 있을지, 무엇이 내 고유의 전문영역인지 알 수가 없었다. 당시의 우리팀은 퍼블리싱을 제외한 모든.. 2023. 5. 15.
Promise Pool로 성능 개선하기 (feat. Promise.all) Node.js 환경에서는 다수의 비동기 작업을 처리하기에 적합하다. 예를 들어, 다음과 같은 상황이 있다고 가정해보자. ID 별로 조회만 가능한 외부 서비스에서 대량의 건수를 API로 조회해야하는 경우 join, subquery 로 조회시 성능과 DB의 부하가 심하여, id 별로 쿼리를 나눠서 조회해야하는 경우 대량으로 이벤트 메세지를 발행해야하는 경우 등등 다량의 Promise 작업들은 백엔드 애플리케이션 작업에서는 언제든지 발생할 수 있다. 이럴때 Node.js 환경에서는 Promise.all 을 통해 쉽게 해결할 수 있다. 여기서 Promise.all 보다 좀 더 성능을 개선할 수 있는 방법을 보자. 개요 수백개 이상의 Promise 작업들은 보통 한번에 Promise.all을 수행하지 않는다. 예.. 2023. 5. 5.

728x90
반응형