분류 전체보기 136

2025년 1월 회고

시간 관리남들의 평가에, 진짜 놓치면 안되는 것을 놓치면 안됨.실수가 예방이 아닌 관리의 대상이듯이, 기술부채도 예방이 아닌 관리의 대상이다.기술부채가 하나도 없다면, 지나치게 꼼꼼히 하느라 생산성이 떨어지진 않았는지 검사기술부채가 너무 많다면, 생산성만 추구하느라 유지보수가 힘들어지진 않았는지 검사2시간 30분 → 30분 휴식2시간 → 30분 휴식1시간 30분 → 30분 휴식1시간 → 30분 휴식하루끝!어떤 방식으로 설계에 접근해야 하나요구사항 분석Use Case 파악Use Case Diagram 작성System Sequence Diagram 작성도메인 모델 작성객체 내 존재하는 상태 파악자료구조 정의Value Object와 진짜 Object 구분PreCondition / PostCondition 작성..

개인적 공간 2025.02.01

HTTP와 네트워크

HTTP-WEBWeb : HTML이라는 문서 형태와 HTTP라는 문서 전송 프로토콜, URL로 문서의 위치를 표시하는 시스템HTTP (Hypertext Transfer Protocol)웹에서 데이터를 주고받는 방식 (Server - Client 모델)클라이언트와 서버 사이에서 클라이언트가 메시지(요청, Request)를 주고, 서버가 메시지를 받아서 응답(Response)을 주는 형태의 통신 방법URI(Uniform Resource Identifier)Uniform: 리소스 식별하는 통일된 방식Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)Identifier: 다른 항목과 구분하는데 필요한 정보HTML (Hyper Text Markup Language)하이퍼미디어 포맷XML을 바탕..

Java Thread Model 의 역사

Java 1.0~1.4: 초기 스레드 모델Thread 클래스와 Runnable 인터페이스 도입기본적인 스레드 생성 및 실행 메커니즘이 제공됨.synchronized, wait(), notify(), notifyAll() 메서드를 사용한 동기화가 가능.초기 문제점동기화 블록의 관리가 어려움.스레드 풀과 같은 고급 API 부재.비효율적인 스레드 관리.Java 5 (2004): java.util.concurrent 패키지 도입새로운 기능Executor Framework스레드 관리를 단순화하는 스레드 풀 및 작업 실행 프레임워크.ExecutorService executor = Executors.newFixedThreadPool(4);executor.execute(() -> System.out.println("T..

책임감, 그리고 리더십

내가 생각하는 리더십의 본질은?다른사람에게 동기부여를 해줄 수 있는 능력.나보다 잘하는 사람들 사이에서, 어떻게 방향을 잃지 않고 가야 하는가?내가 할 수 있는 리더십은 무엇인가?그동안의 "내가 다 해결할게, 날 믿어!" 식 리더십은 더이상 불가능하다.현실적으로 어떤 마인드셋을 지니고 앞으로 나아가야 하는가?가능성 열어두고, 상황 파악자아도취(현재 오판, 미래 확신) + 책임 추구 + 만족 추구자아도취(현재 오판, 미래 확신) + 책임 추구 + 실적 추구장기적 시야(현재 인정, 미래 확신) + 책임 추구 + 만족 추구장기적 시야(현재 인정, 미래 확신) + 책임 추구 + 실적 추구생존(현재 인정, 미래 불안, 단기적 시야) + 책임 추구 + 만족 추구생존(현재 인정, 미래 불안, 단기적 시야) + 책임 ..

개인적 공간 2025.01.06

[함께 자라기] 자라기.

함께 자라기 - 김창준김창준님의 "함께 자라기"를 읽고, 내용을 재구조화 & 정리한 글입니다.자세한 내용은 해당 책을 참고해주세요.다음과 같이, 나에게 던지는 질문을 발전시켜 나가보자.내가 정말 잘할 수 있을까?내가 정말 자랄 수 있을까? 우리가 정말 함께 자랄 수 있을까?우리가 정말 매일매일 함께 자랄 수 있을까?"야생학습" 개념의 등장학교 학습은 로드맵과 정답이 있다.하지만 세상은 변수가 매우 많다.정답이 없는, 상황마다 달라지는 답.단순한 정답/오답만으로 결과가 평가되지 않음결정을 내리는 속도도 중요하고, 목표가 바뀌기도 한다.그래서 필요한 것이 야생 학습믿고 따르지 않고, 스스로 생각하는 방법세상을 내 기준대로 사는 방법"도인을 따라가서 시키는대로 훈련받았더니 고수가 됐다!" 같은건 현실에선 불가..

개인적 공간 2024.12.27

트레이드오프

모든 것에는 Trade-Off가 있다.성숙한 소프트웨어 아키텍트는, 완벽한 설계가 없다는 것을 인정하고, 현재 상황에 맞는 최선의 아키텍처를 선택한다.내 급한 성격은, 빠른 상황 판단과 정확한 결단 및 추진을 가능케 한다.모두가 행복하지는 않더라도, 최고의 결과물을 뽑아내는 역량.내 예민한 성격은, 남들이 보지 못하는 숨겨진 패턴을 보게 한다.섬세함, 요구사항 파악, 장기적 안목, 배려.내 잔소리하는 성격은, 누구보다 무거운 진지함과 책임감을 이끌어낸다.깊은 공감, 이해, 책임사람은 모두 독립적 Object이다.모든 사람은 독립적인 존재이며, 나에게 상처를 주는 사람과 치유를 주는 사람은 별개의 존재다.감정 때문에 슬퍼하는 것은 내 선택이고 책임이다.이 감정 자극에 중독된 것은 아닌가?감정을 통제하고, ..

개인적 공간 2024.12.24

[2213] 트리의 독립집합

[2213] 트리의 독립집합문제를 천천히 읽어보자.독립집합이란, 모든 정점 쌍이 인접하지 않은 정점들의 집합이라고 한다. 간단하게 그림을 그려보면, 다음과 같은 예시를 들 수 있다.그리고 다음과 같은 애들은 독립집합이 아니다.여기서 문제는 한가지 새로운 정의를 내린다.독립집합의 크기란? 독립 집합 내 정점들의 가중치의 합정점의 가중치는 정수로 주어지고, 10000 이하로 제한되어 있다.우리의 목표는 독립집합을 이루는 경우의 수 중, 가장 큰 "집합 내 원소의 가중치의 합"을 구하는 것이다.문제에 그래프 형태가 트리 구조로 되어있다고 하는데, 여기에서 우리는 중요한 관찰을 할 수 있다.트리구조로 되어있다는 것은,정점 A가 어떤 독립 집합 S에 포함/제외되는 것이 재귀적으로 자기 자신에게 영향을 주는 "사이..

PS/Baekjoon OJ 2024.12.03

[1475] 방 번호

[1475] 방 번호어떠한 사람(기능) 이 필요한가?항상 설명이 너무 복잡하다면, 일단 문제를 단순화해서 보자. → 조건을 몇개 제거해보자.(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다는 조건을 제외해보자.)만약, 122 라는 숫자를 만들어야 한다면, 플라스틱 세트는 2세트가 필요할 것이다(2를 2개를 수급하려면, 플라스틱 세트 2세트가 필요할 것이고, 3~9까지 각각 숫자 2개씩은 모두 버려질 것이다. 아깝네)만약, 9999라는 숫자를 만들어야 한다면, 플라스틱 세트는 4세트가 필요할 것이다.(9를 4개를 수급하려면, 플라스틱 세트는 4세트가 필요할 것이고, 9를 제외한 나머지 숫자들 각 4개들은 모두 버려질 것이다.)우리는 여기서, 다음과 같은 결과를 찾을 수 있다.가장 ..

PS/Baekjoon OJ 2024.12.03

[2577] 숫자의 갯수

[2577]숫자의 갯수세개의 자연수 A, B, C가 주어질 때, A × B × C를 계산한 결과에0부터 9까지 각각의 숫자가 몇번씩 쓰였는가?순서대로, 하나씩 차근차근 풀어보자.어떤 사람이 필요한가?문제의 예제를 분석하며 한번 우리가 직접 세보고, 어떠한 과정을 거쳤는지 생각해보자.A, B, C를 곱한 결과값을 계산한다. 그 결과로 17037300 이라는 숫자가 등장했다.우리는 그 다음, 각 자릿수별로 어떠한 숫자가 있는지를 확인했다.근데 총 10종류의 숫자가 각각 등장한 횟수를 머릿속에서 다 외우고 있긴 어렵기 때문에, 아래에 각 숫자가 몇번 등장했는지를 기록하며 풀었다.최종 결과로 3 1 0 2 0 0 2 0 0 이라는 결과가 등장했다.이때 재미있게 볼만한 정보는 다음과 같다.기존 숫자의 170373..

PS/Baekjoon OJ 2024.12.03

[네트워크] 소켓 통신의 기본

글의 목적개발자가 일반적으로 사용하는 모든 TCP 네트워크 통신의 "API"인 소켓 통신의 기본 동작 원리를 이해함으로써, 추상화되어 잊기 쉬운 전송계층의 동작 원리를 "알아야 하는 부분까지" low Level 로 이해하기 위함이다.Top-Down 으로 접근하기에, 추후 전송 계층의 TCP 와 네트워크 계층의 IP까지 다룰 예정이다.서버(Server) & 클라이언트(Client) 모델우리가 컴퓨터에서 흔히 접하는 "클라이언트 & 서버" 라는 단어는 엄청 있어보이지만, 사실 실세계에서 매우 흔히 볼 수 있는 형태의 모델을 추상화해둔 패턴이다.클라이언트(Client)클라이언트는 서비스를 요청하는 쪽이다. 마치 식당에서 음식을 주문하는 손님처럼, 클라이언트는 어떤 정보를 얻거나 작업을 처리해달라고 요청하는 역..