2019.08.19 ~ 25

앞으로 매 주 일요일마다 주간회고를 작성할 생각이다. 좋은 개발자 되기 위해서는 기록과 글쓰기를 습관화 해야한다. 아직 형식을 뚜렷하게 정하지는 못한 이유로 매주 회고의 형식이 변경 될 수 있다. 그럼 첫 번째 회고를 시작해보자

MONDAY


주요 활동

  • 졸업과제 모임
    • GCP에 블록체인 네트워크 띄우기
    • GCP의 키 등록 후 ssh 접속이 계속해서 실패함, 학교 네트워크 문제일 가능성이 높음
  • 5052 전화번호목록
    • 한 시간동안 어떻게 풀지 고민했다. 그중 Redix Sort를 사용하는 것이 가장 합리적이라 생각 됬으나, 예외상황 처리가 까다롭고 매우 많은 메모리 사용이 예상되서 정답을 찾아봄
    • 많은 사람들이 Trei를 이용해서 문제를 해결, 그 중 Trei가 아닌 map으로 문제를 해결 한 코드를 발견해서, 이 방법으로 문제를 해결함
    • Map은 할당되지 않은 int or bool 변수들은 0, string은 ''로 초기화

TUESDAY


주요 활동

  • 공학윤리 신청

  • 과외

  • D2 후기 작성

  • 위상 정렬 (집가는 길에 유투브)

    • DAG에서 사용이 가능한 기법으로, 순서가 있는 그래프들을 하나의 연속된 순서를 가지도록 정렬 하는 기법, 시간복잡도는 O(E+V)를 가진다. 구현은 진입차수가 0인 노드를 큐에 삽입하고, 큐에 꺼낸 노드와 연결되어 있는 엣지를 삭제하면서 진행된다.

Notes

  • D2 Fest min 발표가 있는 날이었다. 사실 프로젝트를 제출하고, 전혀 기대가 없었다. 그렇기에 오늘이 발표 날인지도 모르고 있는 와중에 팀원의 톡을 보고 결과를 확인하니 우수상! 바로 후기를 작성해야겠다고 생각했다.

    WEDNESDAY


주요 활동

  • 졸업과제 - GCP서버와 통신

    • 지난 주말에 ssh 접속에 실패했는데, 학교 네트워크 문제로 의심되어 이번에 집에서 접속해봤는데 깔끔하게 성공
    • GCP 서버 내부에 띄운 Docker 컨테이너와 로컬 테스트를 위해 Apache를 Docker에 띄우고 로컬에서 테스트 하는 작업을 진행했다.
  • union find 학습

    • 이 전에 구현했던 코드를 다시 한번 훑어보았다.
  • 4195 친구 네트워크

    • 유니온 파인드 문제, Rank는 일반적으로 트리의 높이가 들어가지만 문제에 따라서 다양하게 변경될 수 있다. 이 문제에서는 집합의 수로 표현했다.
  • 해커톤 모임

Learning

  • 리눅스에서 1은 표준출력, 2는 표준에러를 의미 /dev/null은 쓰레기통을 의미
  • 증가하는 최장수열(LIS) 알고리즘 - 같은 크기의 부분 수열중 가장 작은 마지막 원소를 저장하는 방식으로 nlogn만의 풀 수 있음

THURSDAY


주요 활동

  • D2 타임라인 최우수 작품 코드 분석

  • 2565 전깃줄

    • LIS 문제로, 문제가 LIS 문제임을 알아 차리는데 시간이 제법 걸렸다.
    • LIS는 꽤나 난이도가 있는 알고리즘인듯한 느낌이다. 이 전에 LIS 문제들을 풀어봤음에도 시간이 지나니 다시 어렵게 느껴졌다. 꾸준히 공부하자
  • D2 최우수 작품 리뷰 포스팅 작성

  • 카프카 기본 개념 살펴보기

    • Kafka는 아파치 재단의 pub-sub 모델의 메시지 큐, 분산환경에 특화되어 설계되어 있어 다른 메세지 큐와의 성능차이가 있다. 그 외에도 클러스터 구성, fail-over, replication와 같은 여러가지 특징을 가지고 있다.

Notes

  • 오늘 D2 타임라인 최우수 작품 코드를 살펴보았는데, 내가 생각했던 그대로를 완벽하게 구현했내다. 역시 세상은 넓고 괴물은 많다

FRIDAY


주요 활동

  • 10835 카드게임

    • 오랜만에 푼 DP를 활용한 BackTraking 문제였다.
    • DP를 이용하게 되면 시간복잡도는 웬만해서는 DP 배열의 크기가 되는게 일반적이다.
  • 하이퍼레저 인증서 발급

    • GCP에 블록체인 네트워크를 띄우고, 로컬에서 인증서 발급을 요청하는 작업을 진행했는데, 계속 타임아웃이 뜬다. 아마 네트워크에서 만들어진 키와 로컬에서 만들어진 키가 달라서 발생하는 오류이거나, 도커 컨테이너 내부에 접속하지 못해서 발생한 오류이거나 둘중 하나 인거 같다 일요일에 더 찾아봐야겠다. --> GCP 방화벽을 열어 놓지 않아서 발생
  • REST 기반의 간단한 분산 트랜잭션 구현 - 1편
    • 요즘 들어 인프라에 관심이 조금씩 가지게 되었다. 그래서 꽤나 흥미 있는 주제의 글을 발견하게 되서 읽어봤는데, 아직은 완벽하게 이해하기에는 내가 많이 부족해 보인다.
  • Reading/Learning

    • netstat - atp를 이용해 네트워크 정보를 확인 할 수 있음

SATURDAY


주요 활동

  • 여자친구랑 서면 데이트
    • 헌터x헌터 개재밌다. 빨리 다시 만화카페 가고싶다
    • 역전할매 개졸맛탱, 왜 웨이팅이 많은지 알겠다
      • 서면 놀이마루가 생각보다 놀 곳도, 사진 찍을 곳도 많다
    • 빈티지38, 내가 가본 카페 중에 제일 이쁜듯, 다음엔 꼭 크라와상을 먹어보자

SUNDAY


주요 활동

  • 1966 프린터 큐

    • 처음에 문제만 읽어보고 단순히 우선순위 큐만 사용하면 해결 되는 줄 알고 그냥 넘길까 했다. 풀어보니 우선순위 큐뿐 아니라 큐도 하나 사용해줘야 한다. 문제를 만만하게 보지 말자
  • 11375 열혈강호

    • 2차원 dp를 채워가면서 풀려고 했으나, 각 상황에 대해서 완료된 업무가 다 다르다
    • 즉 각 부분문제에 대해 독립성이 보장되지 않는다.
    • 해서 완료된 업무 경로를 dp에다 저장하고 비트연산으로 풀려고 시도, 그러나 이 경로들이 2^1000개가 나옴으로 포기
    • 완전탐색으로 구현할 경우 무조건 터진다.
    • 이분매칭을 이용해서 쉽게 풀 수 있는 문제, 그러나 내가 이분매칭을 모른다는게 문제 그래서 이분매칭을 찾아보았다.
    • 이분매칭은 dfs로 간단하게 구현 할 수 있다.
  • 졸업과제

    • 금요일에 막혔던 부분을 계속 봤다. 계속 삽질을 하다, 오픈 채팅방에 조언을 구했고 포트가 열려있는지 방화벽을 확인해보라는 조언을 얻었다. 역시나 방화벽 설정이 되어 있지 않았다. ㅂㅅ..... 덕분에 포트 통신 확인 포스팅을 작성 할 수 있게 되어 아주 기쁘다!
    • 통신이 해결되니, CA 관리자 등록과 유저 등록까지 순조로웠다. 문제는 쿼리를 날려 원장데이터를 가져 오는 거... 어디서 문제가 발생했는지 지갑에 들어 있는 인증서를 가져오지 못했다. 아래 두가지 이유 중 하나로 추측 된다
      • 인증서 발급이 잘못 되었다.
      • 경로의 문제가 있다 ex) 경로중 한글 포함
    • 다음 주에는 서울에 있어 일요일이 되어서야 다시 살펴 볼 수 있을 거 같다.

NEXT WEEK

  • D2 시상식
  • KT 컨퍼런스
  • 네이버 오픈 클래스