
(RN으로 출석체크 어플을 만들며 겪었던 에러를 정리한 글입니다. expo 38.0.8 을 사용하였습니다) 앱을 만들다보면 특정 상황에서 앱을 재시작하도록 하고 싶을 때가 생긴다. 구글에 react native restart를 검색해보면 제일 상단에 이를 지원하는 react-native-restart 패키지를 찾을 수 있다. react-native-restart 패키지 https://www.npmjs.com/package/react-native-restart 링크에 들어가서 살펴보면 사용법이 정말 간단하다. npm i react-native-restart 설치 후 import RNRestart from 'react-native-restart'; // Import package from no..

23년 12월 25일 수정 이 글을 작성한 지 3년 정도가 지났네요. 아직도 모니터 잘 쓰고 있습니다~ 막눈이라서 그런지 불평없이 쓰고 있고요, 해상도가 2K인 게 아쉬워서 바꾸려다가도 멀쩡한 모니터 갈아치우기가 쉽지 않더라고요 ㅋㅋ; 장점은 튼튼하고, 고장없고, 144hz 인 것 입니다. 처음에는 게임하려고 샀지만 게임은 거의 안하게 되었고 주로 재택시 활용했는데 불편함 없이 썼어요. 생각해보니깐 32인치인 것도 장점이네요. 이 사이즈에 적응해서 이제 32인치 모니터만 쓰게 되었습니다. 적당한 가격에 32인치, 2k, 144hz 모니터 쓰고 싶다면 좋은 선택지가 될 수 있습니다. 다만 아쉬운점은 HDR인데, 쓰지 않게 됩니다. 키면 모니터 색이 엄청 이상해지더라고요~ 이 가격에 이 옵션 바라는 건 욕심..
이 글은 introduction to tensorflow for artificial intelligence machine learning and deep learning라는 coursera 강의를 수강하며 정리한 내용입니다. 컴퓨터 비전 컴퓨터 비전은 컴퓨터가 이미지에 라벨을 붙이고 이해하도록 하는 분야를 말한다. 우리 사람은 셔츠가 무엇인지, 신발이 무엇인지 구분할 수 있지만 이것을 프로그래밍하는 것은 매우 어렵다. 예를 들어 옷 같은 걸 본 적이 없는 외계인이 나타났을 때 이 친구한테 어떻게 신발을 설명할 수 있을까? 아마 제대로 하는 것은 매우 어려울 것이다. 컴퓨터 비전은 이와 같은 문제를 가지고 있다. 그래서 이 문제를 해결하는 방법 중 하나는, 많은 옷 사진을 사용해서 컴퓨터에게 이게 무슨 사..
이 글은 introduction to tensorflow for artificial intelligence machine learning and deep learning라는 coursera 강의를 수강하며 정리한 내용입니다. tensorFlow Keras는 TensorFlow 의 API이다. Keras는 neural network를 정의하기 매우 쉽게 해준다. "A neural network is basically a set of functions which can learn patterns." 뉴럴 네트워크의 가장 간단한 형태는 오직 하나의 뉴런만 가진 것이다. 케라스에서는 dense라는 용어를 쓰는데, 이는 연결된 뉴런들의 레이어를 정의하기 위해서이다. 뉴런 네트워크 model = keras.Sequ..
도커 이미지 태깅 도커는 IMAGE ID로 이미지가 구분되지만, 이 값은 자동으로 생성되기에 의미를 알기 어렵다. 그래서 보통 Repository:[:TAG] 로 도커 이미지를 구분한다. 그런데, 도커 이미지를 태깅하다보면 한 가지 의문점이 생긴다. 먼저 태그를 붙이지 않으면 자동을 latest 태그가 붙다보니 쉘스크립트로 도커파일 빌드를 자동화해도 계속 latest가 붙은 이미지가 만들어지고 기존 이미지는 :이 되어버린다. 그렇다고 이미지를 삭제하자니 찜찜하고(사실 리파지토리를 사용하면 삭제해도 괜찮다. 퍼블릭으로는 docker hub, 프라이빗으로는 aws ecs 정도가 있겠다.) 그래서 도커 이미지에 의미있는 태그를 붙여서 버전을 관리하고 싶어졌다. 버전을 관리하고 싶어졌다..랄까? 버전 태그는 1..
간단 데일리 - 웹소켓 서버 분리 오늘 웹소켓 서버를 스프링 서버와 물리적으로 분리하였다. gitlab으로 소스코드를 관리하고 있고 빌드용 쉘 스크립트도 다 짜놓았기에 소스코드를 옮기고 보안그룹을 재설정해주는 정도에서 서버 분리 작업이 끝났다. 기존에 docker-compose를 사용해보고 싶어서 사용했었지만, 서버에 띄우는 컨테이너가 당장은 하나이고(이후 모니터링용 컨테이너가 몇 개 더 띄워질 예정이지만) docker를 사용함에도 불구하고 git의 버전관리에 의존하는 상황에서 docker image를 만들어 immutable한 이미지로 관리하는 방향을 바꾸기 위해 dockerfile를 작성하게 되었다. dockerfile 잘 쓰던 docker-compose를 dockerfile로 다시 바꾸겠다는 것은,..
Docker volume permission 문제 해결방법 (이 문서는 아티클을 참고해서 번역하고 정리한 글입니다.) (우리 프로젝트에 적용한 사례도 있습니다) 프로젝트를 진행하면서 도커로 컨테이너를 띄웠는데 log파일을 백업하기 위해 지정한 volume 디렉토리에 파일을 생성할 수 없는 오류가 있었다. 자꾸 권한이 없다고만 해서 권한을 777로 주니 되긴 하였으나, 이는 보안상 취약점이 될 수 있어서 다른 방법을 찾고 있었다. 찾던 도중 좋은 글을 발견하였고 초반부의 필요한 부분을 번역해보았고 이후 우리 프로젝트에서 어떻게 적용하였는지를 정리했다. 리눅스의 uid와 gid 도커 컨테이너 내에서 uid, gid가 호스트 시스템에서 어떻게 매핑이 되는지 아는 것은 안전한 시스템을 구축하는 데에 있어서 중요..
Async function async funciton은 AsyncFunction 객체를 반환하는 하나의 비동기 함수를 정의한다. 비동기 함수는 이벤트루프를 통해 비동기적으로 작동하는 함수로, 암시적으로 Promise를 사용하여 결과를 반환한다. 그러나 비동기 함수를 사용하는 구문과 구조는, 표준 동기함수를 사용하는 것과 많이 비슷하다. -> async를 사용해서 동기형 프로그래밍 언어처럼 코드를 작성할 수 있게 되었다. function resolveAfter2Seconds() { return new Promise(resolve => { setTimeout(()=> { resolve("resolved")' }, 2000) }); } async function asyncCall() { console.log(..
UnhandledPromiseRejectionWarning 문제(async,await의 예외처리) 웹소켓 서버를 리팩토링하면서 Error 클래스를 만들고 예외처리를 한 곳에서(errorHandler) 하도록 하고 있던 중 async 함수의 예외처리 중 자꾸 UnhandledPromiseRejectionWarning이 나타났다. 원인은 async 함수에서 예외를 던졌을 때 이를 catch하는 곳이 없어 나타난 것이었다. 그런데 나는 분명히 try, catch문으로 감싸고 있었는데 자꾸 이런 에러가 나타났었다. 왜 catch하는 곳이 없다고 하지? 우선 내가 작성했던 함수는 아래와 같다. errorHandler const errorHandler = (callback) => { try { return call..
- Total
- Today
- Yesterday
- docker
- Swift
- 코코아터치
- 144hz모니터
- iOS #코코아터치
- tensorflow
- 도커 이미지
- QHD모니터
- 도커
- 제발태그그만
- 게이밍모니터
- ios
- 소프트웨어마에스트로11기
- 간단정리
- 평면모니터
- docker-compose
- dockerfile
- 개인정보처리방침
- 카카오인턴십
- 출석하냥
- 왕국타이머
- docker tag
- 암기빵
- 사이드 프로젝트
- 한성모니터
- 데일리
- docker image
- ES6
- 앱출시
- React Native
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |