일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode
- 싱크대
- M1
- 알리
- S3
- 머신러닝
- 해외직구
- MySQL
- 장애
- 캐딜락
- 인테리어
- 직구
- virtualbox
- serial
- 알리익스프레스
- Mac
- CTS
- 셀프인테리어
- 슬랙
- 슬랙활용
- Slack
- docker
- catalina
- ReactNative
- PostgreSQL
- 예인싱크
- 슬랙사용법
- 스마트에너지미터
- vagrant
- Today
- Total
목록Programmer (32)
MoreLean
M1 맥북은 arm64 (Apple Silicon)의 태생 때문에 모든 것이 조금씩 달랐습니다. 업무상 머신러닝을 학습해야 하는 상황이 생겨 Tensorflow + Jupyter Notebook 환경을 구축하던 중 삽질하여 얻은 경험을 공유하고자 글을 작성하게 되었습니다. 현재 제 맥북은 환경은 다음과 같습니다. M1 Air이지만, M1 Pro 14인치 CTO 모델에서도 동일하게 설정하고 동작하는 것을 확인하였습니다. 기본적으로 Homebrew는 설치되어 있다고 가정하고 시작합니다. Miniforge 설치 보통 Anaconda를 사용하여 설치를 하지만, arm64 계열인 M1은 지원하지 않아 Miniforge라는 것을 사용해야 합니다. 물론 설치가 안 되는 것은 아니지만 Rosetta2를 통해서 연관되는..
새로운 버전의 Application 이 개발완료되어 배포할때 크게 3가지의 전략을 가진다. 1. 롤링 ( Rolling ) - 인스턴스를 정해놓은 단위로 교체하는 방식이다. 서비스를 구성하는 총 서버의 댓수가 10대라면 2대씩 롤링 업데이트를 진행하겠다고 한다면, 새로운 버전 2대가 생성되고, 정상적으로 서비스가 가능한 상태일때 트래픽이 2대로 전환되고, 구버전 2대는 서비스에서 제외한다. ( draining ) 이 방식으로 2대씩 순차적으로 새로운 버전으로 교체되는 방식이다. 이 방식은 가용 리소스가 적은 상태에서도 배포가 가능하다. 2. 카나리 배포 ( Canary ) - 카나리의 명칭은 예측한 것처럼 카나리아라는 새의 이름에서 따왔고, 이 새가 유독가스에 굉장히 민감한 동물로 석탄 광산에서 유독가스..
이 주제는 스프링 개발자들이 싱글톤 개념에 대한 이해를 확인하기 위해 인기 있는 인터뷰 질문 중 하나이다. 싱글톤 패턴이란 상황에 따라서 Application에서 특정 클래스에 대해 하나의 객체만 존재해야 하는 경우가 있습니다. 예를 들어 특정 세션에 대해 하나의 데이터베이스 연결만 존재해야 하고, 여러 모듈에서 공유되고 있는 글로벌 속성 집합을 참조하는 개체의 경우가 그 대표적인 케이스입니다. 이러한 클래스의 유일한 목적은 클래스의 객체가 전체 응용프로그램에서 하나만 생성되고, 여러 클라이언트에서 공유되어야 합니다. # Code 1 package tips.pattern.singleton; public class MyConnection { private static MyConnection connecti..
MySQL의 SET type에 대해선 문서를 찾아보면 상당히 짧은 것을 확인할 수 있습니다. 통상적으로 적을 것이 별로 없다는 것은 그만큼 명확하고 단순하거나 아니면 그 특징이 크게 자랑할게 없다고 할 수 있습니다. MySQL의 SET type은 후자에 해당한다고 생각합니다. SET type을 처음 봤을땐 '이런 데이터 타입이 있군!' 했었는데, DB에서 컬럼 타입을 선택할때 가장 중요한 부분이 성능과 효율성이라고 생각하는데 이 관점에서 SET type의 제한적인 인덱스는 기능에 치명적이었습니다. 먼저 간단히 SET type에 대해서 설명을 하자면, 1개 이상의 값을 저장할수 있는 type입니다. 이를 테면, 국적이라던지 수강과목이라는 컬럼을 생성할때 이 SET 타입을 쓸 수가 있습니다. 국적이야 데이터..
UTC ( Universal Coordinated Time ) 은 세슘의 원자 진동수를 이용한 시간으로 "국제 표준시"라고도 한다. 1초를 세슘(Cs)의 원자 진동수로 정한 이유는 그 당시 가장 오차없이 측정할 수 있던 원자였다는 점외에 다른 여러가지 이유가 있었다. 1초는 세슘 원자에서 나오는 빛이 9,192,631,770 번 진동하는데 걸리는 시간이라고 정의하였다. GMT ( Greenwich Mean Time )으로 태양의 시간을 기준으로 판단한 시간으로 "평균 태양시" 라고 한다. 일반적으로 UTC와 GMT를 구분없이 사용하나 정밀 과학에서는 GMT보다는 UTC를 사용한다. ( 둘의 차이를 보정하기 위해 윤초가 있다. ) 개발자라면 GMT 보다는 UTC를 쓰는게 맞다라고 생각.
코드 리뷰 가이드http://haruair.com/blog/3116 # 좋은 커밋 메시지 작성하기http://haruair.com/blog/2738 * 요약 - 맨 첫줄은 이메일의 제목과 같다. (요약글이며, 50자이내로 작성 및 마침표로 끝나지 않는다. ) - 요약과 그에 대한 서술은 빈 행을 추가하여 구분한다. - 상세한 서술이 필요하다면 작성한다. - 커밋 요약에 어려움을 느낀다면 여러 로직과 버그가 수정이 있기 때문이며, 이는 `git add -p` 명령어를 사용해 여러 커밋으로 분리한다.
mysql 에서 function을 추가하려 SQL create query를 복사후 실행했더니 다음과 같은 오류가 발생하며 생성되지 않았다. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled엇 이게 뭐지 했는데, 구글신 영접하여 확인해보니 환경설정이 되어있지 않아서 생기는 문제란다. http://www.jamediasolutions.com/blog/deterministic-no-sql-or-reads-sql-data-in-its-declaration.html 가볍게 설정하려 했으나 AWS 의 RDS 를 쓰는 관계로 직접 수정은 권한 없음. Parame..
서버의 경우 OS의 버전을 업데이트하기 쉽지 않다. 안정성을 최우선으로 생각하는 서비스의 경우 특히나 그런데 특정 기능이 특정 버전 이상에서만 지원하는 경우와 같은 특별한 경우를 제외하고는 가급적 업데이트는 지양하는 편이다. ( 서버 운영자마다 다를 수 있다. ) 이번에 javascript 를 minify 및 uglify 를 deployment 과정에서 구현을 해야 하는 경우때문에 node 를 설치할 필요성이 생겼는데 기존의 웹서버가 Cent OS 5.4 Final 이어서 node를 설치하기가 쉽지 않았다. ( 관리의 편리함등으로 yum 이나 apt-get과 같은 package 관리툴로 보통 관리를 하는데.. 불가능 ) 특히나 node를 빌드하기 위해서는 Python 2.7 버전이 있어야 하는데, Cen..