전체 글
-
[Springboot] web+jpa vs webflux+r2dbc 비교 (1)Server 2022. 12. 4. 12:47
기존의 개발 방식으로 많이 사용하는 starter-web + starter-data-jpa 라이브러리를 사용하여 servlet stack 방식을 많이 사용하고 있을 것이다. 최근 webflux + r2dbc 라이브러리를 이용하여 비동기(async) & 논블로킹(non-blocking)으로 구현하는 reactive stack 알게 되어 구현해보고 비교해보려 한다. 각각의 stack방식의 코드 작성은 어떻게 할까? 필자는 mariadb와 연결해서 테스트를 위해 각각 blocking 방식 non-blocking 방식을 지원하는 db connection 라이브러리도 포함해서 진행한다. servlet-stack 코드 기본적인 controller, service, repository, entity를 구성 contr..
-
[TypeScript] tsconfig.json 알아보기Web 2022. 11. 23. 18:56
타입스크립트 형태로 프로젝트 생성을 하게 되면 root path 에 tsconfig.json 이라는 파일이 생성되어있을것이다. 이 파일의 목적은 타입스크립트 ts 파일들을 .js 파일로 변환할 때 어떻게 변환할 것인지 세부설정하기위한 설정파일이다. 기본적으로 생성되어있는 설정값으로 진행해도 되지만 어떠한 설정값이 있는지 알아볼것이다. 필자는 CRA(create-react-app) 을 통해서 타입스크립트용으로 프로젝트를 생성할때 tsconfig.json 기준으로을 시작을 한다. $ npx create-react-app ts_demo --template typescript 을 입력시 리액트 프로젝트가 생성된다. 위처럼 ts_demo 디렉토리를 가보면 tsconfig.json 가 생성되있을 것이다. // 기본..
-
[Javascript] ESLint, Prettier 설정Web 2022. 11. 22. 14:22
프로젝트를 진행하면서 여러사람과 협업을 한다면 전체적으로 코드품질유지를 위해 노력해봤을것이다. 사람들간에 생각하는 코드 방식이 다를것이고, 생각하는 코드컨벤션이 각기 다를것이다. 통일되지 않은 방식으로 개발된다면 초기엔 문제가 되지 않을것이지만 점차 진행하면서, 가독성면에서 문제가 발생할것이고, 그때가서 통일된 방식을 논의하기에도 시간이 더욱 많이 들것이다. 때문에 초기에 코드작성 방식이나 스타일을 미리 정해서 진행하는것이 좋을것이다. 이러한 문제를 해결하기위한 툴로는 ESLint 와 Prettier 가 등장했으며, 두가지에 대한 특징과 차이점에 대해 알아보고 설정하는 방법에 대해 본다. ESLint ESLint statically analyzes your code to quickly find probl..
-
[Android] Do not treat position as fixed; only use immediately and call viewHolder.getAdapterPosition() to look it up later 에러 발생Android 2022. 10. 25. 15:13
발생 : Do not treat position as fixed; only use immediately and call viewHolder.getAdapterPosition() to look it up later 발생상황 recyclerview adapter에서 onBindViewHolder 메소드중 handler 를 구현하여 handlerMessage 내부에서 position 값을 사용하니 발생 원인 position 값이 달라질수 있다는 경고 해결 viewHolder가 가지고 있는 position 값을 이용 absoluteAdapterPosition 호출하여 사용함
-
[android] Only the original thread that created a view hierarchy can touch its views. 에러 발생Android 2022. 10. 25. 15:07
에러코드 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. 발생상황 recyclerview 를 통해 adapter 를 연결하고 adapter내에서 TimerTask를 생성하여 Timer 스케쥴을 등록함. 원인 Main Thread 외의 새로 생성한 Thread를 이용하여 UI를 변경하려 하면 Exception을 발생시킨다. 해결방법으로는 Handler 생성하여 handler 메세지 구현하여 메세지 호출
-
[Swap memory] 스왑 메모리 늘리기Server/Linux 2022. 10. 23. 19:56
스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다. 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 가상 메모리라고 할 수 있습니다. # 스왑메모리 10기가 정도 설정함 $ dd if=/dev/zero of=/swapfile10G bs=1MiB count=10240 $ chmod 600 /swapfile10G $ mkswap /swapfile10G $ swapon /swapfile10G $ vi /etc/fstab $ /swapfile10G swap swap defaults 0 0