본문 바로가기

728x90

전체 글

[Go언어] tcp로 웹 서버 구동시 tcp6로 Listen Golang echo framework로 웹 서버 실행 시 tcp를 지정하여 IPv4를 사용하도록 설정을 했는데도 서버가 실행된 후 LISTEN 상태를 보면 아래와 같이 tcp6만 실행되어있다. netstat -anp | grep 8080 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 :::8080 :::* LISTEN - 그럼에도 ACL이 허용된 다른 서버에서 telnet으로 접근을 시도하면 정상적으로 접근이 된다. telnet 10.0.13.35 8080 Trying 10.0.13.35... Connected t.. 더보기
[쿠버네티스패턴] 2장 예측 범위 내의 요구사항 공유 클라우드 환경에서 애플리케이션 배포, 관리 및 공용(Coexistence)을 성공적으로 수행하려면 애플리케이션 자원 요구사항과 런타임 의존성을 명확히 식별하고 정의해야 한다. 여기서 공용(Coexistence)이란? Coexistence를 찾아보면 쿠버네티스 보다는 주파수, 블루투스와 같은 신호나 기기 간의 충돌 현상을 이야기하는 글들이 많다. 위 의미와 빗대어 쿠버네티스에서의 Coexistence를 생각해보면 다양한 어플리케이션이 Pod의 형태로 같은 노드에 배치되는 것이라 볼 수 있다. 자원 요구사항은 쿠버네티스 위에서 동작하는 어플리케이션들의 CPU와 메모리 사용량을 의미하고, 런타임 의존성은 Pod 실행 시점에 결정되는 볼륨이나 ConfigMap 과 같은 의존성을 의미한다. 이 의존성에 따라.. 더보기
[Flutter] Drawer 위젯 만들어보기 앱을 사용하면서 메뉴 화면이 슬라이딩 되는 것이 신기하기도 하고 구현하기가 굉장히 어렵고 노가다가 많을 것 같다는 생각이 들었었는데 Flutter를 사용하면 의외로 간단하게 만들 수 있다. 먼저 간단한 테스트를 위한 앱이기 때문에 동적으로 액션이 들어가는 부분이 없어서 StatelessWidget으로 생성하고, 앱 화면을 그리기 위해 Scaffold 위젯을 사용하였다. body는 중요하지 않아 임의의 텍스트를 표시하였다. class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: .. 더보기
[WEB] certbot으로 Let's Encrypt 인증서 발급 받기 Let's Encrypt는 TLS 인증서를 무료로 발급해주는 서비스이고, certbot은 Let's Encrypt에서 인증서 발급을 간단하게 할 수 있는 CLI 도구이다. certbot과 Let's Encrypt에 대한 자세한 설명은 생략한다. 아래 링크 참고 certbot Let's Encrypt 인증서 발급 절차 certbot 설치 sudo apt-get update sudo apt-get install -y certbot wildcard 인증서보다는 사용할 서브 도메인만 축소해서 관리하는 것이 보안적으로 더 안전하기 때문에 여기서는 사용할 서브 도메인으로 인증서를 발급받는다. sudo certbot certonly --manual -d "3min.yonghochoi.com" option으로 —man.. 더보기
[WEB] 쿠키 개념 잡기 쿠키 사용 목적 세션 관리 서버에 저장해야할 로그인, 장바구니, 게임 스코어 등의 정보 관리 개인화 사용자 선호, 테마 등의 정보 트래킹 사용자 행동을 기록하고 분석 사전 지식 어떠한 서버도 HTTP 통신을 한다면 쿠키를 주고 받을 수 있다. 클라이언트에서도 쿠키에 접근하고 관리할 수 있다. HTTP와 HTTPS 사이에도 쿠키를 교환할 수 있다. 같은 도메인이라면 서로 다른 Scheme일지라도 쿠키를 공유할 수 있다. 쿠키는 서버든 클라이언트든 생성할 수 있다. 쿠키가 생성되면 브라우저는 해당 쿠키 정보를 저장한다. 생성 이후 발생하는 모든 Request에 쿠키를 포함하여 서버에 전달한다. 보안 위협 수많은 사이트에서 민감한 개인정보를 쿠키에 저장하고 있다. 해커들은 다양한 방법으로 이 쿠키를 탈취하려고.. 더보기
[WEB] 토큰 기반 인증 이 글에서는 토큰 기반 인증에 대한 여러 글들을 조사하여 정리하였습니다. 참조한 레퍼런스는 하단에 링크 첨부하였습니다. 서버 기반 인증의 문제점 세션을 서버 메모리에 저장할 경우 사용자가 해당 서버로 접속해야만 세션이 유지됨 별도DB에 저장 할 경우 모든 웹 서버가 세션 DB에 의존성이 생김 세션 관리를 위해 쿠키가 많이 사용되는데 쿠키는 단일 도메인 또는 서브도메인에서만 작동하도록 설계 되어 있음 (CORS 문제). 즉, 쿠키 사용시 CORS 설정을 해야하기 때문에 도메인 분리가 번거러움 토큰 인증 방법 토큰에는 서버에서 정상적으로 발급된 토큰임을 증명하는 signature를 포함하고 있음 클라이언트에서는 토큰을 받급 받은 후 매 요청마다 토큰을 함께 서버에 전달 서버 전달 시 HTTP Header에 .. 더보기
[LDAP] 개념 잡기 LDAP에 대한 여러 자료를 조사하여 정리한 글 입니다. 참조한 레퍼런스들은 하단 링크로 첨부하였습니다. LDAP 이란 ? Lightweight Directory Access Protocol 네트워크 상에서 조직이나 개인정보 혹은 파일이나 디바이스 정보 등을 찾아보는 것을 가능하게 만든 소프트웨어 프로토콜이다. 네트워크 상의 디렉토리 서비스 표준인 X.500의 DAP(Directory Access Protocol)를 기반으로한 경량화(Lightweight) 된 DAP 버전이다. DAP는 OSI 전체 프로토콜 스택을 지원하며 운영에 매우 많은 컴퓨팅 자원을 필요로하는 아주 무거운 프로토콜 LDAP은 DAP의 복잡성을 줄이고 TCP/IP 레이어에서 더 적은 비용으로 DAP의 많은 기능적인 부분을 조작할 수 .. 더보기
[파이썬] 모듈 사용하기 개요 파이썬은 같은 디렉토리 내의 .py 파일들을 각각 하나의 모듈로 보기 때문에 다른 파이썬 파일의 함수나 클래스를 참조하기 위해서는 import를 해주어야 한다. 자주 사용되는 모듈들은 Python 설치 시 기본적으로 PATH 환경변수에 모듈이 저장된 디렉토리가 포함되어 별도 경로 지정 없이도 참조가 가능하지만 직접 구현한 모듈의 경우에는 import 시 경로 지정이 필요하다. 기본적으로 지정된 모듈의 경로를 확인하려면 아래와 같이 파이썬 코드를 실행해본다. import sys print(sys.path) 모듈 사용 방법 현 프로젝트에서는 API 호출 시 별도 HTTP util을 사용하여 get 또는 post 요청을 하도록 구현을 하였다. 아래와 같이 HTTPUtil 클래스를 http_util.py .. 더보기

728x90