TIL-20210711~17

2021. 07. 15.

07.11

알고리즘 스터디

  • map을 소트하는 방법 https://www.baeldung.com/java-hashmap-sort#key_5
  • 소숫점 표현시 BigDecimal 등을 사용하면 0이 생략되어 표시된다. 만약 0.0000과 같이 빈 0도 표현하려면 String.format을 사용해야 한다.

im-d

  • JVM의 구현은 운영체제마다 다르다. 스펙은 인터페이스 같은 느낌이고, 구현에서 어떤 시스템 콜을 사용할지 결정한다. 예를 들어, 윈도우에서는 윈도우 스레드 API를 사용하고 맥이나 리눅스에서는 Pthread API를 사용한다.
  • 데브독스는 당분간 잠정 종료될 것 같다. 주제를 가지고 토론을 해보는게 어떠냐는 얘기가 나왔는데 괜찮은 것 같다.

07.13

코테 리뷰

류호석님이 재능기부를 해주셨다. 쉽다 생각했는데 떨어져서 많이 상심하고 있었는데, 잘못된 부분을 알고나니 큰 힘이 됐다.

  • 인덱스 실수가 있었다. 아무리 급하고 쉬워보여도 엣지케이스나 뻔히 보이는 예외는 꼭 테스트하자.
  • String은 무겁다. 수가 적을때는 크게 문제되지 않겠지만, 수가 너무 많은 경우 String이 미리 주어지는게 아니라면 캐릭터를 사용하는게 더 좋겠다. 스트링 풀도 힙 영역 안에 있어서 permgen이 없어졌다해도 힙 메모리 오버가 날 수 있다. LinkedList를 선택한 것은 좋았던 것 같지만, 스택으로도 풀 수 있다니 유사한 문제를 다시 풀어봐야겠다.

07.14

  • 문자열 폭발

    • 어제 리뷰받았던 문제의 유사문제를 풀어봤다. 역시 String으로 하면 잘 안되고 캐릭터로 바꾸니 잘 됐다. 스택으로도 풀어봐야겠다.
  • 멀쩡한 사각형

    • 최대공약수를 이용할 수 있는 문제였다. 최대공약수를 잘 모르니 먼저 공부해보자. 주말에 슬빈님 풀이를 살펴보는 것도 좋은 방법일 것 같다.

07.15

  • 최대공약수, 최소공배수를 정리했다. 내일 검수하고 게시해야겠다.
  • BigInteger에 gcd 메소드가 있다. 살펴보다 궁금해진 부분이 있어 디버깅을 해봤는데, int 범위를 넘어갈 경우 int범위만큼 쉬프트 하여 저장한다. 이러면 long 없이 여러개의 int 배열로 표현할 수 있기때문인 것 같다.

    소수찾기 메소드도 있었는데, gcd도 느리긴 하지만 소수찾기는 많이 느렸다. 내부적으로 최적화가 되지 않은 듯한 느낌이었는데, 이유를 찾아봐야 할 것 같다.

07.16

  • 멀쩡한 사각형 풀이. 최대공약수를 이용하니 쉽게 풀이 됐다. 선의 길이 공식을 사용하면 시간초과가 나온다고 한다.
  • 오픈채팅방은 현재 사용자 목록을 해쉬테이블에 저장하고, 객체 링크를 가진 리스트를 만드는 것으로 해결했다.
  • ATDD를 함으로 얻는 장점 중 시작과 끝이 정해진다는 점, 불필요한 코드 생성이 적어진다는 점이 있다고 한다. 그리고 outside in tdd 라고 부르기도 하는 것 같다. 큰 내용을 정하고 세부 내용을 구현해서 그런가보다.

07.17

  • 포스트스쿼드 프로젝트 기획 회의를 했다. 지난 주에 어느정도 틀이 나온 것으로 생각했지만, 얘기해보니 서로 생각하는게 많이 달라 보였다. 모두 괜찮다 혹은 좋은 것 같다고 얘기해도 해당 부분이 서로 다르기때문에 확인을 해야 한다. 이번에 이 점을 간과했던 것 같다. 아무튼 서로 생각했던 것을 얘기하고 서로 중요하다고 생각하는 부분 중 어떤게 더 좋은 방법인가 얘기를 해봤다. 빰빰이 정리를 잘 해주셔서 깔끔하게 정리가 됐다. 순간순간 얘기하는걸 캐치해서 정리를 해줬는데, 서로 원하는 부분을 정확히 절충해줬다. 배워야겠다.

TODO

  • MockMvc 분석

    • 테스트 기본 인코딩이 이상함.
  • 잭슨 리퀘스트 바디 파싱 분석

    • request시에 생성자 인식 못 함.
  • 스프링 절대경로 서버주소 어떻게 인식하는지(어떻게 nginx 주소를 알 수 있나)?
  • 우아한 객체지향
  • 이런 REST로 괜찮은가
  • 알고리즘

  • OS

    • 4.6
  • AWS 강의듣기

    • IAM 정리하기
  • 데브독스 넥스트(7월 첫주)
  • 엘라스틱서치
  • 서브넷 구분
  • s3 이용

    • 구현하기
  • 깃헙액션으로 aws 배포
  • classForName 테스트
  • sticky session
  • clustered index
  • ACID
  • LocalDateTime.of nano sec
  • 트랜잭션
  • 영속성컨텍스트(와 트랜잭션)
  • ATDD
  • 인수테스트 데이터 삽입(초기화)
  • 인텔리j 이클립스 해쉬함수 생성 차이점
  • redis
  • redis repository equals와 어노테이션 확인해보기
  • 블로그

    • 디렉토리 구조 수정
    • blogs/{yyyy}/{mm}/{postname}
    • generator 수정 -[ ] 각 분류 별로(til, post 등) 작성할 수 있도록 -[ ] til에 날짜별 구분과 toc 추가해주도록
    • 허스키 수정
    • 현재 파이프라인이 제대로 동작하지 않아서 수정 날짜 후처리가 되지 않음
  • 면접

    • 일했던 것 까지적으려면, 이력서에 사용했다고 명시한 기술에 대해 더 깊은 이해.
    • 쿼츠, 스캐줄링
    • 스프링 배치, 배치
    • 멀티파트
    • 멀티파트 리졸버
    • 시큐어코딩
    • 오라클이나 postgresql

      • 기본적인 차이점이나 장단은 숙지
      • 오라클 mysql 차이 공부하고 브라이언에게 다시 물어보기
      • 공간쿼리까지 준비하면 더 좋을듯...
    • 운영체제, 네트워크, 데이터베이스 등 컴퓨터공학 기본지식을 재점검
    • “신입개발자 면접 문제” 찾아서 충분히 준비(특히 SOLID, ACID 같은 기본 키워드)
    • 가장 좋아하는 정렬을 비롯하여 시간복잡도 log, n2 인 것들 각각 한가지씩은 숙지해 두시기 바랍니다(탐색도 알아두시면 좋습니다)
    • 자기소개는 충실히 준비
    • 화법 연습
    • 모르는 부분에 키워드 중심으로 힌트를 요청하면 좋겠습니다(“~~에 대한 말씀이신가요? 제가 잘 모르겠는데 키워드 몇 개만 주실 수 있으실까요?“)
    • 말을 확실하고 분명하게
    • 말끝을 흐리지 않게 항상 조심
    • 분명한 어조로 답변
정대화
DaeHwa_Jeong@outlook.com

Powered with by Gatsby 2.0