개발/개발노트
-
면접 질문 답변으로 떠올리지 못했던 hash table에 대해개발/개발노트 2021. 8. 8. 02:08
최근 추천받은 책에서 안전 해시 설계에 대한 글을 보면서 전에 기술면접때 받은 한 질문이 떠올랐다. 질문은 무수히 긴 스트링 값이 있을때, 거기서 해당 단어가 있는지 없는지 확인하고자 한다면 어떻게 해야할까?였다. 분명 좋은 방법이 있을텐데 당시 난 아무런 방법을 떠올리지 못했고, 단순히 contains을 통해 포함 유무를 확인했을 것 같다고 했다. 면접이 끝날 때쯤 질문시간에서 난 해당 질문에 대해 해결 키워드를 질문을 했고, 해시 테이블을 사용해 보라는 답변을 받았다. 말을 듣고, 해시테이블에 해당 해시코드로부터 인덱스를 가져와 나눠져서 저장하는 그림이 연상되었다. 하지만 하나의 스트링을 나눠서 저장하는 로직에 대한 전처리에 대한 것은? 이런 의문은 들었지만 솔직히 해시 테이블이나 해시 맵을 떠올리지..
-
typeOrm에서 entity 의 필드값은 왜 private가 아닐까? (캡슐화x)개발/개발노트 2021. 6. 24. 18:24
이번에 typecript + nestjs 환경으로 구성된 프로젝트를 보며 궁금한 점이 생겼다. javascript에서도 ORM 프레임 워크가 있으며 이는 jpa와 아주 유사했다. 눈에 익어 코드를 이해하는데 무리는 없었으나 큰 의문이 생겼다. 프로젝트 내 코드에서도, typeORM 공식 사이트 예제코드에서도 필드에 대한 접근제어자가 없는 것이다. 내가 알기론 javascript의 접근 제어자 default 값은 public이다. 따라서 entity의 필드값들의 타입은 public이란 것인데 높은 안정성이 필요한 개체 값이 변동 가능성이 높은 public인 것인지 의문이 든다. 많은 사람들이 변동가능성에 대해 생각을 했을 것인데 왜일까? 찾아보니 비슷한 내용이 https://stackoverflow.com..
-
새로운 프로젝트를 접하며개발/개발노트 2021. 6. 16. 10:49
nestjs에서 typescript로 개발되고 있는 프로젝트에 합류하여 작업하게 되었다. 업무 돌입에 앞서 접하며 생기는 의문점들을 적어보고 학습하면서 풀어보려고 한다. 1. 처음 nodejs로 개발한다고 들었는데 와보니 nestjs? javascript를 사용한다고 하였는데 nestjs? 차이들은? 나중에 정이한다면 분류는 어디에 해야할까? 2. typescript는 객체지향언어라고 알고 있다. 따라서 각 객체 클래스들을 정의하는데 생성자가 없다. 해당 프로젝트에서는 속성만 들어있고 로직은 서비스단에서 처리하고 있다. 이를 객체지향으로 객체클래스에서 처리하도록 할 수 없나? 해야하지 않을까? 3. object -> object 컨벌팅이 선언으로 끝난다. 아주 강력한 매퍼가 사용되고 있는 것 같은데 중간..
-
gradle build시 jdk version 설정개발/개발노트 2020. 6. 29. 14:37
jdk 1.8로 작업해오다 jdk11을 이용해 프로젝트를 진행해보기로 하였다. 도중 생긴 문제가 빌드시 Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8) 와 같이 gradle JVM 버전이 맞지 않는 것이다. 만약 intelliJ와같은 환경이면 설정 -> Build,Excution, Deployment -> Build Tools -> Gradle 에서 Gradle JVM을 설정하면 된다. 하지만 배포환경이 Jenkins를 통해 빌드하는 경우 다른프로젝트들은 다 1.8인데 한 프로젝트만 11이면 문제가 생긴다. jenkins 서버에 jdk11 설치된 상태에서 시도 - jenv를 통해 해당 프로젝트만 jenv java11를 잡았다...
-
최근 바꾼 것들개발/개발노트 2020. 1. 3. 16:15
회사에서 꾸준히 개발일을 하고 있지만 최근 개발을 하지 못한 느낌이다(?). 지난 반년을 돌아보면 elasticsarch 서버 구축, 사용, elk 환경 세팅 사용, 딥러닝 keras lstm을 활용한 가격예측이고 새로운 것들이다보니 익숙하지도, 잘 안다는 자신이 없다. 메모를 중간중간 하긴 했지만 개인프로젝트를 통해 정리해 볼 필요가 있을 것 같다. 각설하고, 최근에야 다시 spring boot 환경에서 간단한 프로그램을 만들었는데 알면서도 지나쳤던 것들을 잡아야겠단 생각이 들어 조금씩이나마 바꾸는 코딩습관들을 적어본다. 1.DI 에서 주로 단순하게 @Autowired private A a; 와 같은 필드주입이나 private A a; @Autowired setA(A a){ this.a = a } 와 ..