PM2 reload 시 서비스 중단되지 않게 하기

MariaDB, MySQL DB

PM2로 node app을 구동 시 reload를 하면 일시적으로 서비스 중단이 발생한다.새로운 프로세스가 아직 서비스할 준비가 되지 않았는데 PM2가 기존 프로세스를 종료시켜버리기 때문.단순한 서비스라면 reload에 시간이 걸리지 않지만 db connection이나 시간이 소요되는 로직이 수행되어야 한다면 100% 일시적인 서비스 중단이 있을 수 밖에 없다. 이를 방지하기 위해 app의 listen이 완료되었을 시에 다음 코드를 넣어줌으로 PM2로 하여금 프로세스가 …

Continue Reading

NginX – 413 Request Entity Too Large 해결

NginX SERVER

httpd를 사용하다가 최근에 nginx를 도입하여 사용하고 있다.처음 사용하다보니 시행착오들이 발생하고 있다. 잘 운영되던 사이트에 이미지 파일이 업로드 되지 않는다는 리포트들이 들어오고…내가 테스트할 때는 아무 이상 없이 잘 올라가는데..? 알고보니 파일 업로드 용량 제한 때문이었다. nginx의 기본값은 1Mb로 그 이상의 파일을 업로드하려고 하면 413 Request Entity Too Large 에러가 발생한다. 해결 방법은 nginx.conf의 http 섹션에 다음과 …

Continue Reading

[이지스퍼블리싱 서평단 진행] 프로그래시브 웹앱 만들기

DEVELOPMENT JavaScript Book Review

요새는 백앤드 개발만 하고 있기에 FE쪽을 작업할 기회가 별로 없고.. 따라서 상대적으로 최근 개발 트랜드를 놓친다 싶은 시점이었는데 이지스퍼블리싱에서 구미가 당기는 신간이 발매되어서 서평단을 신청했고 감사하게도 당첨이 되어서 PWA 에 대해 공부를 해 볼 수 있게 되었다. 예전에 Vue.js 서적을 구매해서 공부했고, 리액트도 서평단에 당첨되어서 공부를 했었는데 그건 해당 프레임워크에 대한 서적이고 이고 SPA나 PWA에 …

Continue Reading

Adonis.js

DEVELOPMENT Node.JS

Micro project를 진행할 때 간편하게 사용할 수 있는 node.js 프레임워크를 찾다가 딱 맘에 드는 녀석을 찾게 되었다. (약 1달 전 쯤?) 프레임워크 구조나 사용법이 Ruby on Rails (이하 RoR)의 그것과 많이 닮아 있었기에 좀 더 배우기 수월 했다. (나는 사용 해본적이 없지만 PHP의 Laravel과도 비슷하다고 한다.) 물론 프레임워크를 사용해본 적이 없는 사람이나, 이런 컨벤션을 가진 …

Continue Reading

PagerAdapter 설명

Android DEVELOPMENT IT

ViewPager에 표시할 내용을 정의하려면 어댑터가 필요하다. 어댑터는 아이템의 목록 정보를 가진 객체이다. 프래그먼트를 아이템으로 가지면서 ViewPager에 설정하는 어댑터는 다음 두 가지가 있다. FragmentPagerAdapter : 페이지 내용이 영구적일 때 적합. 한 번 로딩한 페이지는 메모리에 보관하기 때문에 빠르다. 그래서 페이지가 많으면 많은 메모리를 사용한다. FragmentStatePagerAdapter : 많은 수의 페이지가 있을 때 적합하다. 보이지 않는 페이지를 메모리에서 …

Continue Reading

GLIDE Library 이미지리소스 사용 편의성

Kotlin Android DEVELOPMENT IT

setImageURI 메서드로 이미지를 이미지뷰에 표시할 수도 있지만 Glide 라이브러리를 이용하는 것이 더 편리하고 효율적이다.미사용 리소스를 자동으로 해제하고 메모리를 효율적으로 관리해주기 때문이다.또한 이미지를 비동기로 로딩하므로 UI의 끊김이 없다.app수준의 gradle의 dependencies에 다음과 같이 추가해준다. File – Project Structure를 클릭하여 추가해도 된다.

Continue Reading

권한 확인 및 요청

Kotlin Android DEVELOPMENT IT

사용자가 권한을 요청하면 시스템은 onRequestPermissionsResult() 메서드를 호출하고 사용자의 응답을 전달한다. 따라서 권한이 부여되었는지 확인하려면 이 메서드를 오버라이드 해야한다. 위의 예제는 하나의 권한만 요청하였으므로 grantResults의 [0]번째 인덱스 값만 확인한다.여러 권한을 요청시 해당 갯수만큼의 인덱스를 확인할 수 있으며, 권한이 승인되면 PERMISSION_GRANTED를거부되면 PERMISSION_DENIED를 반환한다.

Continue Reading