사실 대부분의 스타트업들이 대규모라 부르지 못할 정도로 규모가 작기 때문에(어지간한 유명한 곳도 마찬가지라 생각), 그냥 작은 사이즈의 서버를 잘 만드는 게 더 중요하다고 생각하긴 한다. 가령 무료 EC2 인스턴스에서 얼마만큼 효율적으로 시스템을 디자인할 것인지 등등...
요즘은 O(n!)따위의 괴랄한 저성능의 코드가 아니라면, 어지간하면 성능은 부차적으로 두고(물론 그러한 코드들을 유의깊게 기억해둔다) 구현하는 거 같다. 현실 세계에서는 생각보다 Big-O보다 상수 영역에서 더 많은 성능 하락을 겪는 경우가 많고, 이는 인간이 예측할 수 없는 부분이기 때문이다.
신입시절 코드 리뷰 때:
나: 이 코드는 O(n)인데 조금 길게 쓰면 O(login)가 될 수 있을 것 같아요" (의기양양)
시: (귀엽군) 이론적으론 너 말이 맞아. 하지만 이 코드의 N은 100이 넘어갈 일이 없어. 게다가 이 코드가 병목은 아니고.. 대안 코드는 더 복잡한데 의미가 있을까?"
회사에서 일하면서 이해가 가면서도 동시에 이해가 안 가는 여러 개발 경험들:
1. 테스트를 안 짠다. 정확히는 어디서부터 무엇을 어떻게 테스트해야 하는지 잘 모르겠어서, 적당히 알잘딱깔센하게 짜는 경우가 많은 거 같은데 이건 아직도 잘 모르겠다. 사실 잘 돌아가면 되긴 함.
신입 프로그래머 면접 질문 중에 제가 자주하는 것이 있는데,
- 윈도우 파일 경로에서 디렉터리를 구분하는 문자는 무엇인가요? 그다음으로는 리눅스, 맥에서는요?
입니다. 의외로 대답하지 못하는 사람들이 꽤 있더군요. 학원에서 코딩만 가르치다보니 운영체제 기본은 좀 놓치는 느낌이 들었습니다.
이것도 그렇고, 애초에 재활용된 제품들을 생산하는 비용이 그냥 새 제품을 만드는 것보다 비싸기 때문에 상대적으로 재활용을 굳이 기업 같은 데서 안 하는 것도 있는 거 같아서, 새 제품에 세금을 왕창 물리는 등의 무언가를 해야 좀 더 환경에 기여가 되지 않을까 하는 생각...
프로그래밍 그거 비유하자면 활쏘기 아닌가. 누군가는 활을 정확하게 맞추는 걸 좋아할 수 있고, 누군가는 우아하게, 누군가는 효율적이게, 누군가는 가성비있게 하는 것을 좋아할 수 있다. 어쩌다보니 활 쏘는 게 돈 벌이가 되긴 했는데, ㄹ 자를 그려가며 활을 쏘는 것은 나는 별로 좋아하지 않는다.
어차피 GPT가 해봤자 인터넷에 있는 내용 갈무리해서 정리해준 정도일텐데, 이게 책으로 나올 정도일까 싶고... 현재 GPT의 장점은 검색해서 내가 정리할 바엔 질문하고 GPT latency를 기다리는 게 낫다 정도의 트레이드오프말곤 없다고 생각함. 심지어 이것도 웬만하면 느리고 틀려먹음
일반적으로 REST API 서버 짤 때, JSON request body의 validation(400 에러나는 것들)은 error response로 보통 뭘 주나요? 구체적으로 어떤 field의 값이 어떻게 틀렸다를 알려주나요, 아니면 단순히 400만 던지나요? 전자라면 혹시 어떤 라이브러리를 쓰거나 어떻게 구현했는지 궁금합니당
그런 방면에서 내가 좋아하는 쇼핑몰 플랫폼은 네이버 스마트스토어이다. 수수료도 오픈마켓(G마켓, 옥션 등이 보통 18% 안팎으로 받는 것으로 앎)에 비해 현저히 낮은 걸로 알고(한 자리 수대), 간결하고 깔끔한 디자인에 네이버페이까지 붙어있으며, 공지사항이나 이벤트 페이지도 제공한다.