개발공부(173)
-
[AWS] AWS VPC 작동원리(서브넷)
AWS VPC 작동원리(서브넷) 서브넷은 하나의 AZ에 생성 가능합니다. public 서브넷은 외부 인터넷으로 연결이 가능하지만 private 서브넷은 VPC 내부에서만 연결이 가능합니다. Internet Gateway는 인터넷으로 나가기 위해 거치는 통로라고 생각하면 됩니다. route table은 유입된 트래픽을 어디로 보낼지 알려주기 위해 저장하는 테이블 입니다. 가령 내부 private subnet(local)로 접근할 수 있는 ip를 설정해주거나 igw(Internate GateWay)를 통해 외부로 보낼 수 있는 ip 대역을 설정할 수 있습니다. NACL과 SG는 보안에 관련된 네트워크인데 전자는 stateless, 후자는 stateful이란 차이가 있습니다. 따라서 특정 ip를 차단하고 싶다..
2021.10.31 -
[Network] Subnet & CIDR(Classless Inter-Domain Routing)
Subnet & CIDR(Classless Inter-Domain Routing) 네트워크에서 Subnet이란 용어는 IPV4의 늘어나는 ip 사용자에 따라 서브 네트워크를 할당해 네트워크 효율성을 높이는 네트워크 안의 네트워크 입니다. IPV4는 2^32 비트로 이루어진 주소입니다. ex) 255.255.255.255 각각의 .은 옥텟을 구분하기 위함이며 옥텟은 0~255 사이의 값을 가집니다. CIDR은 서브넷을 나눠 사용할 때 표기하는 방식입니다. 예를 들어 C 클래스 타입의 IPV4를 두 개의 서브넷으로 나눌 때 211.11.124.0/25와 211.11.124.128/25로 구분할 수 있습니다. 슬래쉬(/)를 기준으로 앞 부분은 서브넷 주소의 첫 시작을 의미합니다. 슬래쉬 뒤에 있는 숫자는 서브..
2021.10.31 -
[JWT] JWT(Json Web Token)
JWT(Json Web Token) Authentication을 마치고 Authorization이 일어날 때, 기존의 방식인 session과 달리 JWT는 scalability와 multiple device 사용이 가능합니다. JWT는 DB를 거치지 않고 Base64로 인코딩된 토큰을 헤더에 전달해 서버에서 validate 한다음 Authorization을 주는 토큰방식입니다. JWT는 .으로 구분된 세개의 부분이 존재합니다. 첫 부분은 header로 알고리즘 종류와 토큰 타입이 담깁니다. 두 번째 부분은 payload로 비즈니스 도메인에서 식별이 필요한 내용(ex. 사용자 이름, id 등)이 들어갑니다. 그리고 마지막 3번째는 앞선 두 부분에 담긴 정보를 공개되지 않은 secret key를 활용해 En..
2021.10.30 -
[Nginx] Nginx와 프록시
Nginx와 프록시 클라이언트 레이어(vue, javascript, react...등)서비스를 빌드 하는데엔 여러 방법이 있습니다. 회사 서비스를 테스트 서버에 빌드 후 실행하는 작업을 앞두고 있어서 관련 medium 아티클을 참고해보려 합니다. Vue와 Java(Spring boot)서버를 빌드/실행하는 방법 중 Vue static content를 NGINX 웹 서버를 이용해 빌드하는 방법을 택했습니다. NGINX는 웹 서버를 실행시키고, 프록싱, 캐싱, 로드 밸런싱, 미디어 스트리밍등을 위한 오픈 소스 소프트웨어 입니다. 웹 서버의 성능 최적화를 위해 디자인 되었습니다. 또한 HTTP 서버 가용성은 email(IMAP, POP3, SMTP)를 위한 기능으로 사용할 수 있으며 HTTP, TCP, UDP..
2021.10.29 -
[Git] Git 브랜치 전략
git 브랜치 전략 기술면접에서 git 브랜치 전략에 대해 질문을 받았는데 dev, master, stage, dev-...(개인)로 배포, 테스트, 개발 브랜치로 나눠 관리하고 있다라고만 답을 했습니다. 제가 풀어서 설명한 방식은 gitflow 전략과 유사했습니다. Atlassian 문서에서 링크된 gitflow전략을 개발한 Vincent Driessen의 포스트에 따르면 10년 동안 gitflow 전략이 정석(혹은 마법의 알약)으로 소프트웨어 업계에 자리잡았다고 합니다. 하지만 필자는 이 전략을 10년 전 CI/CD 주기가 지금보다 훨씬 길었을 때 구상했기 때문에 짧은 배포주기를 가지고 있는 팀은 Github-flow 사용을 권장한다면서 세상에 마법의 알약은 없는 사실을 받아들이라고 말합니다.(변화를..
2021.10.29 -
[MySql] mysql timestamp 서버 UTC 타임존
mysql timestamp 서버 타임존 mysql 서버에 설정된 타임존을 기준으로 timestamp가 표출됩니다. DateTime은 존 정보를 담고 있지 않는 것과 대비되기에 시간은 TimeStamp로 설정하는 것이 권장됩니다. UTC를 코드에 적용시켜주고 있는데, mysql 서버 time.zone 설정을 +00:00으로 해주면 자동으로 UTC 저장이 됩니다. 단, UTC로 미리 변환해 mysql에 저장할 경우 서버 로컬 타임존으로 인식해 UTC 타임 오프셋이 설정될 수 있기 때문에, 한 가지 UTC 변환 방식을 선택해야 될 듯 보입니다. 그리고 session.time_zone과 global.time_zone의 차이는 session은 db 커넥션 off 기준으로 리셋된다는 것입니다. mysql> SET..
2021.10.27