[IT] 공부하는 개발자/Open Source
-
[Auth] oAuth2 proxy + Okta 연동하기 예제[IT] 공부하는 개발자/Open Source 2023. 6. 11. 14:47
Oauth2 proxy 란? 백엔드 서비스에 대한 인증 및 권한 부여를 처리하는 중간 프록시 서버 OAuth 2.0 인증을 사용한다. 어떤 역할을 수행할까요? - 사용자 인증 - Provider 에 요청해 액세스 토큰을 발급 아키텍처 AS-IS: 사용자에게서 들어온 요청을 바로 업스트림(실제 서비스)으로 보낸다 TO-BE: 사용자에게서 들어온 요청은 업스트림으로 가기 전에 OAuth2 reverse proxy를 거친다. (중간에 Nginx를 한 번 더 거쳐도 되고, 거치지 않아도 된다.) 리버스 프록시 서버는 요청이 액세스 토큰을 가지고 있다면 업스트림으로 패스시켜 주고, 액세스 토큰이 없다면 Auth provider를 호출해 유저의 접근 여부를 확인, 액세스 토큰을 발급받아 유저에게 부여한다. Flow..
-
[Terraform] 테라폼이란? 테라폼으로 인프라 구성하기[IT] 공부하는 개발자/Open Source 2023. 4. 23. 20:40
최근에 운영에서 AWS k8s 클러스터 셋업을 하면서... ALB, IAM 등을 테라폼으로 만들었는데 정말 편리하더라고요 인간은 이렇게 계속해서 대체되어 가는군요..ㅠㅋㅋㅋ 자동화의 물결을 피할 수가 없어요... 테라폼이란? 테라폼은 인프라를 코드로 관리할 수 있는 도구 테라폼을 쓰는 이유 1. 인프라를 코드로 관리할 수 있음 -> 자동화 가능! 테라폼을 사용하면 인프라를 코드로 관리할 수 있습니다. 이를 통해 서버나 네트워크 등의 인프라를 쉽게 생성, 수정, 삭제할 수 있습니다. 또한, 코드로 관리하므로 변경 이력도 추적할 수 있습니다. 코드로 관리하기 때문에 인프라를 자동으로 생성할 수 있습니다. 자동화를 통해 Human error를 줄일 수 있습니다. 2. 다양한 클라우드 서비스 지원 테라폼은 AW..
-
Dockerfile 작성방법, 운영에서 알아야 할 주의 사항![IT] 공부하는 개발자/Open Source 2023. 4. 21. 10:56
Docker image 이란? 도커 이미지는 도커 컨테이너를 실행하기 위한 파일 시스템과 실행할 애플리케이션에 대한 설정 정보를 포함하는 템플릿입니다. 도커 이미지는 다른 이미지와 레이어를 공유하여 생성됩니다. 새로운 이미지를 생성할 때, 이전 이미지의 레이어를 사용하여 이미지를 빌드합니다. 이전 이미지와 동일한 레이어가 있는 경우, 해당 레이어는 새로 생성하지 않고 재사용됩니다. 이렇게 함으로써, 도커 이미지를 더욱 효율적으로 빌드하고 저장할 수 있습니다. 도커 이미지는 Docker Hub와 같은 이미지 레지스트리에 저장됩니다. 이미지 레지스트리는 도커 이미지를 중앙에서 저장하고 배포하기 위한 서버입니다. 사용자는 이미지 레지스트리에서 이미지를 다운로드하여 도커 컨테이너를 실행할 수 있습니다. 도커 이..
-
[Kubernetes] CrashLoopBackOff 이슈 트러블슈팅 (+Nginx)[IT] 공부하는 개발자/Open Source 2023. 4. 15. 12:23
[Kubernetes] CrashLoopBackOff 이슈 트러블슈팅 직접 도커파일을 작성하고 쿠버네티스로 배포하다 보면 CrashLoopBackOff 에러를 자주 만나게 된다. CrashLoopBackOff는 컨테이너가 시작되지 않고 종료되어 버릴 때 발생하기 때문에, 컨테이너에 직접 들어가서 명령어를 실행하거나 테스트를 하는 것이 불가능하다. (kubectl exec... 실행 안 돼요!) 그러므로 kubectl logs 명령어를 실행해서 컨테이너가 종료되기 직전의 로그를 확인해야 한다. kubectl logs 해결 사례 내가 찾아낸 이슈는 2가지였다. 1. 내가 이미지 Dockerfile에 작성한 app 실행 명령이 수행되지 않고 컨테이너가 종료되었다. - 발생 원인 Dockerfile 에 작성된 ..
-
[ELK Logstash] config 파일 작성 예시 - input, filter, output[IT] 공부하는 개발자/Open Source 2022. 2. 20. 18:29
Logstash ELK의 한 축 을 담당하는 Logstash는 오픈소스 데이터 수집 엔진입니다. 다양한 경로로 원천 데이터를 가져와서 가공해서 내보내는 역할을 합니다. ELK의 한 스택으로 쓰일 때에는 주로 데이터를 읽어 들이고 Elastic Search로 내보내는 파이프라인의 역할을 합니다. Config 파일 작성 로그스태시를 기동 할 때에 실행할 데이터 파이프라인에 대한 설정을 미리 작성해둔 것이 conf 파일입니다. Conf 파일은 입력, 필터, 출력 3 단계로 구성합니다. 이 중 필터 단계는 생략해도 무방합니다. Input plugin 예시 reference: https://www.elastic.co/guide/en/logstash/current/input-plugins.html Input plu..
-
맥 Numbers 앱에서 환율 / 주식 함수 사용하기 (STOCK, CURRENCY)[IT] 공부하는 개발자/Open Source 2021. 5. 8. 10:30
Overview 맥북 사용자라면 모두 Numbers, Pages와 같은 앱을 디폴트로 가지고 있다. 생산성 면에서 월등히 앞서는 구글 시트, 엑셀 때문에 사용자가 무척 적은 것 같다. 이 함수에 대한 설명을 찾기가 어려웠던 걸 보면... 그렇지만 Number 앱에서도 엑셀에서처럼 환율, 주식 함수를 사용할 수 있다! 주식 함수 사용하기 코스피에 상장된 휠라홀딩스라는 종목의 가격, 배당을 확인하고 싶다면? 1. 빈 셀에 특수문자 = (equals) 를 입력한다. 그러면 아래와 같은 함수 팝업창이 나타난다. 2. 함수 팝업창에 아래 코드를 입력한다. STOCK("{종목코드}.{시장코드}",0) 휠라홀딩스의 종목코드는 081660이고 코스피에 상장되어 있으므로, 이렇게 입력한다. STOCK("081660.KS..
-
Groovy Spock 을 쓰는 이유, 코드 작성 예시 소개[IT] 공부하는 개발자/Open Source 2021. 2. 15. 08:45
목차 1. Spock의 소개 2. Spock 시작하기 3. Spock 으로 테스트 코드 작성 예시 1. Spock Introduction Spock의 특징 개발에서 테스트 코드의 중요성은 아무리 강조해도 지나치지 않습니다. 훌륭한 테스트 코드 프레임워크라면, 사용자가 다양한 케이스의 검증을 구현할 수 있게 도와줌으로써, 보다 적은 힘을 들여 Code Coverage를 높일 수 있게 기여해야 합니다. Java 진영의 대표적인 테스트 코드 프레임워크인 JUnit 은 TDD 기반인 것에 비해, Spock 은 BDD 기반입니다. TDD 는 테스트 자체에 집중하여 개발하는 방식인 반면, BDD는 비즈니스 요구사항에 집중하여 테스트 케이스를 개발하게 됩니다. BDD는 전개도 사용자가 직관적으로 알 수 있도록 자연어..
-
logstash 'unknown setting *** for jdbc' 에러 메시지[IT] 공부하는 개발자/Open Source 2020. 12. 7. 22:34
로그스태쉬 파이프라인을 기동하는 과정에서 도커 이미지에 내장된 jdbc input 플러그인을 그대로 사용했는데, 기동시에 아래와 같은 에러 메시지가 보였다. 'Unknown setting 'use_prepared_statements' for jdbc 'Unknown setting 'prepared_statement_bind_values' for jdbc 'Unknown setting 'prepared_statement_name' for jdbc 원인을 몰라서 jdbc 드라이버 버전을 바꿔 보기도 하고, 플러그인 설치 커맨드도 추가하고, 로그스태쉬 버전도 점검하고 했는데, 원인은 jdbc 플러그인이 Prepared Statement 쿼리를 지원하지 않는 버전인 탓이었다. 업그레이드 명령어를 실행하여 해결할..