본문 바로가기

개발

(316)
19.06.13 spring boot source code 파악하기 자바, 스프링 개발을 하면 당연히 스프링 부트 소스코드를 볼 일이 많다. 옆 동료가 한걸 본다던가 내가 특정 서버를 맡게 된다거나 하면 보는데 아래 세가지를 확인 해보면 소스코드 파악을 시작 할 수 있다. 1. 배포 되어있는(prod, qa, dev) 버젼의 파라메터 2. controller 3. schedule 4. build해보기 5. 배포 해보기
Envoy(엔보이)란? envoy proxy띄우기 Envoy(엔보이)란? 엔보이는 L7 프록시(OSI 7 Layer)이고 커뮤니케이션 버스입니다. 커다란 현대적인 서비스 기반 아키텍쳐를 위해 만들어졌습니다. 네트웍과 어플리케이션 문제들을 조금 더 쉽게 해결 할 수 있습니다. 프록시란? 프록시란 일종에 자동 가격비교 사이트 같은 것입니다. 우리가 특정 물건을 검색하면 어떤 사이트에서 얼마에 파는지 알려줍니다. 프록시는 여기에 더해서 가장 가격이 저렴한 사이트로 바로 이동하게 해주는 기능이 포함 되어 있다고 생각하시면 됩니다. 사용자의 요청이 어떤 서버로 가면 좋을지를 판단해서 사용자의 요청을 해당 서버에 보내고 그 결과를 사용자에게 대신 전달해주는 것이 프록시 입니다. Transparent proxy(트렌스패런트 프록시)란? 투명한 프록시로서 사용자가 요..
may 30 장애 로그 장애 내용 1. 주문 받는 서버에 에러가 10시간 넘게 났음 2. 주문 받는 서버에 call이 늘어나는 문제가 있었음 배포 기록 2019-05-29 09:52:00에 주문 받는 서버 배포가 있었음 2019-05-29 10:53:00에 주문 받는 서버에 네트웍 트래픽이 증가함 장애 원인 1. firebase url이 잘못됨 2. 1로 인해 주문이 안들어가는 문제가 있었음 - 왜냐하면 firebase에 update를 한 후에 주문이 들어가게 되어있는데 firebase에 update할때 에러가 나서 뒤에 코드가 타지 않음 3. cancel이 안되는 문제 4. 3으로 인해 cancel이 안되어서 잔액이 부족함 5.서버에 에러로그가 남기고 알림이 10시간 정도 옴 6. 3은 order의 메세지를 수정했기 때문에 ..
aws s3에 script로 index.html등 static파일 배포하기 구글 검색 하면 얼추 나오지만 정리를 해본다. aws 콘솔에서 손으로 배포하는 것은 한두번이지 한계가 있다. 쉘 스크립트를 짜놓고 엔터 누르면 배포되게 해야 지속 가능성이 있다. html 디렉토리 안에 있는 index.html을 배포 해보겠다. s3경로를 알아야 한다. '경로 복사'를 누르면 된다. 그리고 index.html파일을 수정 해보자. hello2로 수정을 한다. 그리고 명령어 aws s3 cp ./index.html s3://biblefinder.co.kr/ 이렇게 하면 배포가 된다. 위 명령어로 올리면 퍼블릭으로 설정이 안되서 올라간다. 해당 파일에 액세스 하려고 하면 Access Denied가 나온다. https://s3.ap-northeast-2.amazonaws.com/biblefind..
aws s3에 버킷 만들고 호스팅하기 ec2를 띄우고 nginx를 올리고 index.html을 올리고 hello를 출력하고 이 과정이 만만한 과정은 아니다. 실제로 ec2를 띄워서 운영을 해보믄 생각보다 관리가 쉽지가 않다. 그런데 이렇게 올려서 실제로 문제없이 서비스를 하고 있는 곳이 있어서 nginx서버가 없어도 서비스 운영이 된다는 것을 확인 했다. 처음에 퍼블릭 액세스를 활성화 안해서 이렇게 나온다. 호스팅을 하려면 전세계에서 이 s3버킷에 액세스를 해야 하기 때문에 퍼블릭 액세스 권한을 부여 해줘야 한다, 위 url을 복사 해둔다. 설정 후에 다시 들어와서 볼 수 있으니 그렇게 해도 된다. http://biblefinder.co.kr.s3-website.ap-northeast-2.amazonaws.com이 주소이다. 호스팅 한 주소..
may 28 - 내가 하는 일들 backend, infra 회사에서 하는 일이 여러가지가 있다. 온갖 일을 하는 것 같다. 점점 가지수는 늘고 복잡해지긴 하는데 한개만 진득허니 하는 일은 줄고 있는 것 같다. 다루는 언어는 3개 언어를 다룬다. java, javascript, python 그리고 aws를 쓴다. 가끔 google cloud platform도 쓴다. 1.aws api gateway관리 - 새로운 api 엔드포인트를 만들기 - 해당 end point에 권한 설정하기 2.api gateway에서 server로 들어가는 인증 서버 관리 - 해당 end point를 call한 것이 실제 사용자인지, 해당 사용자의 권한이 어떤지 관리하기 3.로그인 할 때 사용자 check하는 서버 개발 및 관리 - aws cognito관리, aws cognito trigg..
may 16 - 로그인 등 웹에서 token이란? 토큰이란? 블록체인 암호화폐도 토큰이라는 말을 쓰는데 여기에서 다룰 것은 블록체인 토큰이 아니고 로그인을 하거나 사이트를 이용할 때 토큰이다. 토큰은 말 그대로 동전이란 뜻인데 일종에 버스카드나 교통카드라고 생각하면 된다. 그런데 동전하고는 조금 다르다. 동전 처럼 생겼지만 시장에 가서 물건을 사거나 할 수는 없고 버스를 탈 때 동전 대신 넣는 것이다. 토큰은 일종에 권리를 주는 것이다. 버스를 탈 수 있는 권리, 지하철을 탈 수 있는 권리를 부여 해주는것이다. 이 권리는 돈을 냈느냐 안냈느냐인데 돈을 내면 이 토큰을 받고 이 토큰을 내고 버스에 탈 수 있는 것이다. 토큰은 이미 없어진지 오래 되었고 동전도 점점 없어지고 있어서 토큰의 의미를 이해하기가 어렵게 되었지만 의미는 그렇다. 점점 이 토큰이라는..
aws cognito pw없이 로그인 하기 로그인은 우리에게 아주 친숙한 기능이고 맨날 id넣고 비밀번호 찾기 하고 등 웹 서비스에서 아주 기본이다. 하지만 보안, 인증 등과 관련 되어 있기 때문에 개발자가 구현 하는 로직 중에 가장 까다로운 로직이 아닐까 싶다. 특히나 금융쪽은 otp같은것도 받으니까 더욱더 복잡하다. 요즘에 카카오 로그인을 코그니토에 붙이고 있는데 카카오에서 토큰을 받은 다음에 서버에서 토큰을 가지고 사용자 email등 정보를 받아온 후 우리 사이트의 cognito 인증까지 받아야 로그인이 된다. 헉.. 헉.. 헉... ㅋㅋ 구현 하다보니 아래와 같이 구현 하면 될 것 같아서 몇번 읽다보니 영어로 읽는데 오래걸려서 번역 해놓고 볼려고 이 글을 쓴다. 위 다이어그램을 설명 해보면 아래와 같다. 1. 사용자는 로그인 폼에 이메일 ..