Dockerfile에 아래처럼 설정해 준다. 1. 기본적으로 tzdata가 설치되어 있는 이미지어야 한다. apine 같은 이미지면 아래처럼 설치를 한다. RUN apk add --no-cache tzdata 2. 아래 내용을 붙여 준다. 2-1 내용은 /etd/localtime이라는 링크 파일이 timezone을 정의하는 경로를 가리키고 있기 때문에 2-2 $TZ 환경변수를 설정하고 그 내용을 /etc/timezone에 넣어주면 바로 설정이 되는 방식이다. # 한국으로 TimeZone을 설정한다. ENV TZ=Asia/Seoul RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
기본적으로 리눅스에서 ssh-keygen으로 생성한 id_rsa.pub를 이미 github에 등록 한 것을 전체로 한다. 1. devcontainer 환경은 container 안에서 벌어지는 일이기 때문에 github에 접속할 때 ssh-key를 사용할 수 없다. 1-1 당연히 로컬의 ~/.ssh 폴더와 컨테이너 안의 ~/.ssh은 완전히 다르기 때문이다. 2. 이를 위해 ssh-agent를 사용할 수 있다. 이것은 외부환경을 위한 port forwading같은 것으로 생각하면 되는데 데몬 서비스이다. 3. ssh-agent를 사용하려면 우선 ssh-agent에 사용할 ssh 공개키를 등록해야 한다. 3-1 ssh-add ~/.ssh/id_rsa.pub 형식으로 등록해 주면 된다. 4. ssh-agent..
1. 우분투의 기본 terminal에서는 git의 상태를 vscode에서 표시되는 것처럼 현재 브랜치나 변경 마크 같은 것이 표시되지 않는다. 2.아래의 코드를 .bashrc에 삽입하여 termainl 프롬프트를 변경할 수 있다. parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ ' else..
SSH는 RSA 암호화 알고리즘을 사용하는 보안 접속 프로토콜이다. 서버는 클라이언트의 공개키를 저장하고, 클라이언트는 비밀키를 가지고 있는데, 이 상황을 가지고 클라이언트가 비밀키로 진짜 클라이언트가 맞는지를 검증하는 방식이다. 1. ssh는 22번 포트를 활용하는 보안 원격 접속 프로토콜이다. 2. 접속 시 기본적으로 ssh server는 해당 계정의 비밀번호를 물어보지만 클라이언트에서 ssh key를 생성하여 공개키를 접속할 서버에 등록하면, 계정 비밀번호 대신에 ssh key passpharse로 접속이 가능하다. 2-1 대칭키 기반의 보안을 사용하므로 훨씬 안전하다. 2-2 ssh 키는 간단하게 말하면 비밀번호를 대신해서 특정 파일로 인증한다고 생각하면 된다. 2-3 서버에 ssh 클라이언트의 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dcwUAW/btrHpD4gHVo/9wAnf3A6oF2UfgxW9vTWKk/img.png)
Visual Studio Code에서는 Favorite Static Members라는 설정 항목이 있다. 이것의 목적은 static으로 설정된 변수나 타입을 개발 시에 import하기 좋도록 목록에 제공한다. 설정에서 Favorite으로 검색하면 다음 항목이 나온다. Edit in settings.json으로 해당항목을 보면 아래처럼 열리는데 Code 기본적으로 org.junit.Assert.* 패키지를 기본으로 보여주기 때문에 assertJ 패키지를 import하기가 상당히 까다롭다. 아래처럼 해당항목을 assertj를 추가하고 junit을 주석처리하면 이제 ass라고 타이핑하면 assertj 패키지 부터 검색하게 된다.
Robot Bounded In Circle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1. 이 문제는 사실 기술적인 부분이 하나도 없다. 알고리즘을 몰라도 구현 가능한 문제이다. 2. 그런데 웃긴 건 아직도 이 문제의 해답을 이해하지 못하겠다는 점이다. 3. 문제의 핵심은 이 로봇이 벋어나지 못하는 경로를 계속해서 돌게 되는지 여부인데 이 조건에 대해서 이해 할 수가 없다. 4. 조건은 로봇에게 지시문이 주어지는데 이것을 무한히 반복하여 동작하게 된다. ..
클라이언트 보다는 서버 프로그래밍이 주력이긴 하지만 재미는 클라이언트가 높은 것 같다. 개인적으로 React, Vue, Angular 모두 자유롭게 활용이 가능하지만 순수 JavaScript 코딩을 선호한다. 이유는 Redux 같은 것도 좋긴 하지만 내가 설계를 하면 데이터는 어디에서든 연결할 수 있고, 책임있는 컴포넌트에서 관리하게 하여 더 직관적으로 프로그램을 만들 수 있기 때문이다. 즉, 프레임워크의 소스를 분석해서 활용하는 것도 괜찮지만 내가 프레임워크를 만들어서 코딩하는 편이 더 쉽고 더 자유롭다. 작년 부터 시민들이 온라인으로 민원을 신청하는 페이지에 대한 UX/UI 개선에 대한 고민을 해왔었다. 아래는 현재 간략히 정리한 내용이다. - 현재 33종의 민원을 온라인으로 제공하고 있다. - 하나..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- 설정하기
- Many-To-Many
- jsp
- WebMvc
- 스프링부트
- hibernate
- crud
- 자바
- MYSQL
- one-to-one
- Validation
- Angular
- one-to-many
- Rest
- login
- mapping
- spring boot
- Spring
- 하이버네이트
- 매핑
- 외부파일
- 상속
- RestTemplate
- form
- XML
- Security
- 로그인
- 설정
- 스프링
- Spring Security