전체 글

1. 개인정보의 처리 목적 (‘http://cajava.tistory.com’이하 ‘DreamSoft’) 은(는) 다음의 목적을 위하여 개인정보를 처리하고 있으며, 다음의 목적 이외의 용도로는 이용하지 않습니다. - “디바이스 저장소”를 사용하여 “디바이스 내의 사진 가져오기”기능을 사용합니다. 2. 정보주체의 권리,의무 및 그 행사방법 이용자는 개인정보주체로서 다음과 같은 권리를 행사할 수 있습니다. ① 정보주체는 (‘http://cajava.tistory.com’이하 ‘DreamSoft’) 에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다. 1. 개인정보 열람요구 2. 오류 등이 있을 경우 정정 요구 3. 삭제요구 4. 처리정지 요구 정보를 전혀 수집 하지 않으므로, 모두..
· 🐋 Flutter
몇 시간 동안 삽질해서 겨우 알아낸 오류 하나를 잡게 되었다. 원인은 Flutter의 외부 dependency인 flutter_sounds를 사용하려고 추가를 한 다음 IOS에서 빌드를 하려 하는데 deploy버전이 안 맞는 등 각종 오류가 폭발하다가 flutter clean 또는 IOS 폴더를 통째로 지우고 flutter create . 를 쓰는 방법을 해봤다. 물론 해결은 안 됐다. 그리고 최종적으로 직면한 오류가 Undefined symbol: ___gxx_personality_v0 인데 Xcode 내에서 빌드를 하여도 동일한 문제가 발견되었던 것을 보았다. 구글에 여기저기 찾아보니 깃허브에서 해결방법을 올려준 것을 보았고 M1 맥북에서 자주 발생하는 오류로 보였다. IOS buildSetting에..
JWT는 사실 세션, 쿠키 방식의 인증 방법에서 자주 거론되는 인증, 인가 구현 기술 중 한 가지이다. 이름은 많이 들어왔지만 정확히 자세한 원리는 알지 못했던 상태라 이번 기회에 깊게 탐구해보고 알게 된 내용들을 정리해보려 한다. 1. JWT란 JWT(Json Web Token)는 서버, 클라이언트 간 권한을 확인하고 인가 (Authorization)를 할 때 사용하여 웹상에서 Json형태로 주고받는 토큰을 얘기한다. 기존의 세션(Session)과 쿠키(Cookie) 방식으로 클라이언트의 인가(Authorization)를 구현하면서 여겨지던 불편한 점을 개선하고 시스템 자원의 사용량이 줄이게 되어, 속도가 중요시되는 클라이언트와 API 개발을 할 때 많이 사용되는 방식이다. 2. JWT의 구조 JWT는..
최근에 Nodejs에서 Mysql 연동 테스트를 진행하던 중 비동기 방식에 대한 장점을 최대한 살리고 싶었다. 현재 까지는 createConnection을 이용해 connection 객체 한 개만을 이용하여 다음 쿼리가 들어오기 전까지 대기하는 식으로 DB가 동작하는 바람에 NodeJs의 비동기 작업을 최대한 응용하지 못했던 점이 있었다. 또한 항상 connection을 열어둔 상태로 대기하기 때문에 대기 시간이 지나게 되면 자동으로 연결이 끊기는 오류가 발생하기도 했다. 그러한 점 때문에 다른 좋은 방법을 고안하던 중 Connection Pool 패턴이라는 방법을 알게 되었고, 내가 알고 깨달은 내용에 대해 최대한 상세하게 기술하려고 한다. 우선 Connection Pool 하면 무엇이 떠오르는가 딱풀..
MySql을 통해 DB로부터 데이터를 가져오는 API를 개발했다. 앱과 연동 후 하루정도 이후에 다시 앱에서 호출을 해봤는데 서버에 응답이 없는 문제가 발생했었다. 당장 서버 측 콘솔을 확인해보니 PROTOCOL_CONNECTION_LOST라는 메시지와 함께 MySql의 연결이 죽어있던 것이다. 원인은 MySql 자체에서 기본 타임아웃 시간이 28800으로 인해 발생한 것이었다. 약 8시간 정도 아무런 요청이 없다면 모든 연결을 종료하는 것 같았다. 이전에 닷넷 개발을 통해 MySql을 사용했을 때는 쿼리 요청을 사용할 때만 Connection을 연결하고 끊고, 연결하고 끊고를 반복하다 보니 이러한 문제는 없었다. 하지만 NodeJs에서 구현한 방법은 js파일이 require 될 때 Connection ..
· 🐋 Flutter
이번에 사용자 정보를 담는 위젯을 꾸미고 있었는데 한 가지 문제가 발생했다. Row안에 Text를 넣었는데 글자 수가 너무 많을 경우 잘리는 현상이 발견했던 것이다. Text속성에 overFlow 옵션을 적용해주는 방법을 사용하려 했지만, 이 방법은 부모 위젯의 사이즈가 지정되어야 잘리는 현상을 해결할 수 있는 것 같았다. 그래서 찾은 방법이 Flexible을 알게 되었다. Row나 Column 위젯에서 남은 자리를 전부 채우도록 설정하는 위젯인데, 아래 코드처럼 Flexible을 부모로서 감싸주면 해결이 가능하다. Row( mainAxisSize: MainAxisSize.max, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( '이름:'..
Dogfoot_JW
개발자국