이 글은 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..
github.com/sweethoneybee/hello-world sweethoneybee/hello-world Repository that I made for the first time. Contribute to sweethoneybee/hello-world development by creating an account on GitHub. github.com 프로젝트 진행하면서 데일리로 올리는 글은 8월 19일 부터 시작해서 쭉 적고 있습니다(좀 늦게 시작함). 깃허브에서도 구경하세용
jwt 스프링 서버에서 넘어온 jwt를 내가 시크릿키로 풀어보면 자꾸 invalid signiture오류가 났다. 계속 오류를 찾다가 스프링 서버의 코드도 찾아봤는데 아래 두 개의 메소드가 인자로 base64EncodedSecretKey를 String으로 받고 있는 것을 발견했다. Jwts.builder().signWith() Jwts.parser().setSigningKey() 그런데 현재 우리가 구현한 코드는 시크릿키를 base64로 인코딩하지 않고 넘겨주고 있었고 그래서 웹소켓서버에서 자꾸 유효하지 않은 시그니처 오류가 난 것이다. base64로 인코딩, 디코딩 했을 때 하나의 쌍은 있으나, 인코딩 하지 않은 문자를 디코딩했을 경우 쌍을 이루지 못한다. 따라서 스프링에서 Jwt를 만들 때는 꼭 시크..
- Total
- Today
- Yesterday
- 암기빵
- QHD모니터
- 도커 이미지
- iOS #코코아터치
- 개인정보처리방침
- ios
- 간단정리
- 게이밍모니터
- 출석하냥
- 한성모니터
- 평면모니터
- docker-compose
- 제발태그그만
- docker tag
- docker image
- 앱출시
- 왕국타이머
- 소프트웨어마에스트로11기
- 카카오인턴십
- dockerfile
- 도커
- ES6
- 144hz모니터
- 코코아터치
- tensorflow
- docker
- 사이드 프로젝트
- 데일리
- Swift
- 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 | 31 |