전체 글(89)
-
[스타트업 연계] 웹소켓 통신 서버 프로젝트 간단 회고
시놀 | Notion 기간: @2023/11/20 ㅡ @2024/01/05 [7주] softsquared.notion.site 이전 포스팅: [스타트업 연계] 캐싱 프록시 서버 프로젝트 간단 회고 (tistory.com) 팀 생산성 스타트업 연계라고 해서 많은 것을 배울 수 있을 줄 알았는데, SI 업체 취급받아서 기분이 매우 상했다. 하지만 거기에 꺾일 우리가 아니지. 자체적인 세션 제도 및 개발일지 시스템을 운영하여 팀 생산성을 확보하고, 향후 보고서 작성 단계까지 고려한 문서화를 진행한다. 이 표를 정리하고나니, 7주의 시간이 참 시원섭섭하게 느껴졌다. 스스로 부딪히며 배운 것도 많았고, 느낀 것도 많았다. 프로젝트는 끝날 때마다 뒤돌아보면 항상 아쉬운 점이 보인다. 다음에 그러한 점을 채우려고 노..
2024.01.14 -
[스타트업 연계] 캐싱 프록시 서버 프로젝트 간단 회고
시놀 | Notion기간: @2023/11/20 ㅡ @2024/01/05 [7주]softsquared.notion.site해당 스타트업에서 요청한 요구사항에 따라 SI 외주 업체의 입장에서 진행배경현재 운영중인 메인 서버는 JavaScript 기반으로 로직을 동기적으로 처리하고 있어서,향후 트래픽 증가에 따른 지연 증가에 적절히 대처할 수 없다고 한다.캐싱 프록시 서버 도입현재 운영중인 메인 시스템의 Spring/Java로의 migration 전에 성능 개선을 위해 도입할 수 있는 부분을 고민했다고 한다.결과로 제안된 것이 캐싱 서버이다. 현재 시스템은 monolithic한 구조로 모든 요청은 프록시 서버에 전달된다. 이러한 시스템 구조는 SPOF 문제가 있으므로 Nginx 또는 k8s를 활용하여 다중 ..
2024.01.14 -
객체지향 특징 - 캡슐화, 정보 은닉
인터넷에서는 4가지만 나와있는데, NCS에서는 5가지를 정의하고 있다. 보통 '정보 은닉'은 캡슐화의 부차적인 기능 정도로 생각했는데, 이를 직접적으로 명시한 의도는 무엇일까? 2번 항목을 보고 아래의 내용이 떠올라서 책을 다시 폈다. 로버트 마틴의 '클린 코드'에서는 이런 내용이 있다. 변수를 private로 정의하는 이유가 있다. 남들이 변수에 의존하지 않게 만들고 싶어서다. 충동이든 변덕이든, 변수 타입이나 구현을 맘대로 바꾸고 싶어서다. 그렇다면 어째서 수많은 프로그래머가 getter/setter로 비공개 변수를 외부에 노출할까? 만약 어떤 클래스가 생성 시에 참조하는 모든 클래스의 인스턴스를 매개변수로 넣어주어야 한다면, 또 공개된 메서드에는 매개변수도 많고, 오버로딩에 따른 차이가 극명하다면...
2024.01.11 -
이력서 작성 요령
Target Company Uniform format Brief Description NCS-like Expression Strategic Thinking 1. Target Company 희망하는 기업에 대한 기준 정하기 개인 우선순위(연봉, 거리, 도메인, culture-fit) 성장성(사원 수 변화 추이, 매출액, 투자 유치, R&D 투자 비율) 안정성(설립일 5년 이상, 재무 안정성, 이직률) Career Path: Top-Down Planning Domain별 특징 고려 '경력직' 중심으로 채용하는 기술 집약적 기업에 도달하기 위한 계획 목표 기업에 대한 내용 조사 및 정리는 단시간에 완성할 수 없음 2. Uniform format 문서 형식 통일 Font: 맑은 고딕, 나눔 스퀘어, 10pt 자..
2024.01.08 -
시간 활용에 대한 고찰
평소 효율적인 시간 활용에 대해 관심이 많다. 변화하는 과정 중에서 얻는 통찰을 기록할 예정이다. 2023/12/23 원활한 관리를 위해 표 형식으로 전환. 비유적인 표현을 사용하며 소요되는 불필요한 검증 시간을 줄이기 위해 보다 명확한 어휘로 전환. 시간 활용 전략 체크리스트 0. Passive: 조사(독서, ), 경험, 시뮬레이션, 메타인지-자기객관화 1. 목표: 우선순위, 가치관, 신념, 책임, 의무, 작업 속성(일회성, 일관/지속적) 2. 기한: 중요도, 버퍼, 방법론(폭포수, 애자일) 3. 집중 3-1. 상태(내부. 피로도) 3-1. 상황(외부. Using single core CPU: 멀티스레딩 여부, 스레드 수, 컨텍스트 스위칭 빈도) 3-2. 환경(외부. 가변 인자 개수, 통제 가능 여부,..
2023.12.23 -
[Python] BOJ 18258번: 큐 2
18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 어려운 문제는 아니지만, 참고할만한 내용이 다수 있어서 가져왔다. 1차 시도 코드 더보기 import sys INs = list(map(lambda x: x.split(), sys.stdin.readlines()[1:])) Q = [] for IN in INs: cmd = IN[0] if cmd == 'push': Q.append(IN[1]) elif cmd == 'pop': print(-1 if len(Q) < 1 else Q.pop(0..
2023.07.22