개발/삽질 기록
-
Javascript 동치비교개발/삽질 기록 2022. 2. 11. 20:20
Javascript 에서는 다른 언어랑 다르게 비교 연산자로 '==' 뿐만 아니라 '===' 가 있어 다른 변수와 비교할 때마다 내가 짠 코드가 정확한 건지 아닌지 헷갈릴 때가 종종 있다. '==' 는 느슨한 비교 연산자고 '===' 는 엄격한 비교 연산자인데 사용할 때마다 결과가 달라 이번 포스트에서는 Javascript 비교 연산자를 깔끔히 정리해보려고 한다. string 비교 연산 변수와 상수형 문자열 사이의 비교는 '==' 든 '==='를 사용하든 상관 없다. 아래 코드를 보면 두개의 비교 연산 모두 true로 리턴하게 된다. const simple = "simple" const is = simple === 'simple' ? 'is' : 'is not' // true, is='is' const ..
-
kotlin data class 는 상속을 가능하면 쓰지 말자개발/삽질 기록 2021. 12. 8. 22:06
kotlin data class는 데이터만 보유하는 클래스를 만들 때 관리하기 용이한 클래스다. data class 로 클래스를 만들면 객체 간의 동등성 비교시 사용되는 hashCode 함수를 자동으로 만들어주기 때문에 단순히 데이터를 관리하는 것 뿐만 아니라 데이터간의 비교도 쉬워진다. 여기서 hashCode 함수는 생성자의 멤버 변수의 값으로 만들어 지는데 이것은 객체 간의 비교를 주소값으로 하지 않고 객체의 멤버변수의 값으로 하기 위함이다. 아래의 User 데이터 클래스로 선언된 a, b 변수는 모두 다른 메모리에서 선언 됐지만 hashCode 상으로는 동일한 값을 보이므로 동등성 비교에서는 같은 값을 보인다. data class User(val age: Int, val name: String) f..
-
Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 15 path $.documents개발/삽질 기록 2021. 3. 15. 18:23
안드로이드 개발중 Gson과 Retrofit을 이용해 Json 데이터를 주고 받을 때 이런 에러를 보게 되는 경우가 있다 Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 15 path $.documents at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224) at com.google.gson.internal.bind.ReflectiveTypeAdapterFa..
-
git 에 올라간 파일 이름 확인하기개발/삽질 기록 2021. 1. 26. 20:07
이전 포스트에서 맥에서 파일의 대소문자 구분을 하지 않는 특성 때문에 크게 한번 삽질한 적이 있었는데 얼마 지나지 않아서 같은 삽질을 반복하고 말았다... 내 로컬 저장소에서는 아무 문제 없이 돌아가는데 리눅스 기반 heroku에서는 파일을 찾지 못하는 에러를 또 보고 말았다.. 부글부글. 이번에는 깃허브에서 관리하는 프로젝트도 아니라서 무슨 파일이 잘못됐는지 찾기도 어려웠는데 다행히 명령어 한줄로 긴 삽질을 막을 수 있었다. 깃에 올라간 파일 이름을 리스트로 출력할 수 있다. user@kwony mytrot-admin % git ls-files .env.development .env.production .gitignore README.md package.json public/favicon.ico pub..
-
cannot find module - heroku개발/삽질 기록 2021. 1. 10. 11:01
파일 이름을 리팩토링 한 후 새롭게 배포를 했더니 heroku에서 파일을 찾을 수 없다는 에러가 발생하게 됐다. 분명 로컬에서는 아무 문제 없이 제대로 돌아가고 있는데 heroku에 deploy하면 file을 찾을 수 없다는 에러가 발생했다. 2021-01-10T01:25:18.946380+00:00 app[web.1]: mytrot development mode 2021-01-10T01:25:19.123710+00:00 app[web.1]: internal/modules/cjs/loader.js:883 2021-01-10T01:25:19.123711+00:00 app[web.1]: throw err; 2021-01-10T01:25:19.123712+00:00 app[web.1]: ^ 2021-01-10..
-
error: internal/modules/cjs/loader.js:883개발/삽질 기록 2020. 12. 14. 09:58
리액트 프로젝트를 복사해서 다시 사용하는데 이런 에러가 발생했다면. internal/modules/cjs/loader.js:883 이전에 사용한 프로젝트의 node_modules에서 만든 경로랑 꼬여서 생긴 문제일 확률이 높다. 이럴때는 모듈 별로 수정하는 방법이 있겠지만 간단하게 node_modules 폴더를 모두 날리고 다시 설치하는게 빠르다. rm -rf node_modules rm -f package-lock.json yarn cache clean yarn install
-
visual code definition 찾고 돌아가기개발/삽질 기록 2020. 12. 13. 16:59
visual code로 작업을 하다보면 어떤 클래스의 정의를 찾고 나서 이전 페이지로 돌아가고 싶은 경우가 있다. Jetbrain계열 IDE만 사용하다 visual code로 들어와서 헤맸는데 이번 포스트에 간단히 정리한다. 거의 게임체인저 급의 단축키임이 틀림 없다. Mac 기준 정의 찾기: command + 마우스 클릭 이전 페이지로 돌아가기: control + - Window 기준 정의찾기: control + 마우스 클릭 이전 페이지로 돌아가기: Alt + 왼쪽 방향키