본문 바로가기

개발/개발 Note

(194)
19.06.13 spring boot source code 파악하기 자바, 스프링 개발을 하면 당연히 스프링 부트 소스코드를 볼 일이 많다. 옆 동료가 한걸 본다던가 내가 특정 서버를 맡게 된다거나 하면 보는데 아래 세가지를 확인 해보면 소스코드 파악을 시작 할 수 있다. 1. 배포 되어있는(prod, qa, dev) 버젼의 파라메터 2. controller 3. schedule 4. build해보기 5. 배포 해보기
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의 메세지를 수정했기 때문에 ..
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이란? 토큰이란? 블록체인 암호화폐도 토큰이라는 말을 쓰는데 여기에서 다룰 것은 블록체인 토큰이 아니고 로그인을 하거나 사이트를 이용할 때 토큰이다. 토큰은 말 그대로 동전이란 뜻인데 일종에 버스카드나 교통카드라고 생각하면 된다. 그런데 동전하고는 조금 다르다. 동전 처럼 생겼지만 시장에 가서 물건을 사거나 할 수는 없고 버스를 탈 때 동전 대신 넣는 것이다. 토큰은 일종에 권리를 주는 것이다. 버스를 탈 수 있는 권리, 지하철을 탈 수 있는 권리를 부여 해주는것이다. 이 권리는 돈을 냈느냐 안냈느냐인데 돈을 내면 이 토큰을 받고 이 토큰을 내고 버스에 탈 수 있는 것이다. 토큰은 이미 없어진지 오래 되었고 동전도 점점 없어지고 있어서 토큰의 의미를 이해하기가 어렵게 되었지만 의미는 그렇다. 점점 이 토큰이라는..
손 댈 필요 없는 프로그램은 어떻게 만들지? 손 댈 필요 없는 프로그램은 어떻게 만들지? 요즘 고민은 안정적인 서버 프로그램을 어떻게 만들까 하는 것이다. 서버를 한번 올렸으면 안죽게 해야 하는데 수시로 들어가서 재부팅 해줘야 하면 그게 잘만든 프로그램이 아니다. 잘못 만든 프로그램은 내 시간을 자꾸 잡아 먹는다. 일단은 서버가 잘 돌고 있는지 health check하는 방법부터 생각을 해볼 필요가 있을 것 같다. 내가 할 수 있는 수준이 아니라 다른 개발자나 qa 엔지니어가 할 수 있는 수준이면 더욱 좋다. aws같은 경우는 vpc에 집어 넣고 그 안에서 health check 할 방법을 생각해볼 필요가 있다. 서버 상태 판단하기현재 서버가 어떤 상황인지가 모니터링이 되어야 한다. 죽었는지 살았는지, 에러가 나는지 안나는지 이것만 알아도 아주 수..
java validation(벨리데이션) 로직 java validation(벨리데이션) 로직 벨리데이션은 유효성 검증 기능인데 특정 요청이 유효한지 아닌지 true, false를 리턴 해주고 true, false일때 각각 어떤 제약 조건에 걸렸는지 알려주어야 하는 기능이다. 유효성 검증 등 조건이 여러가지인데 모두 태울 것인지 아니면 중간에 특정 조건에 걸렸을 때 끊을 것인지 true가 나오면 return할 것인지 List -> validate(List) 이렇게 되고 validate()에는 로직을 태운다. @Data public class Result{ public boolean result; public String failId; public String reason; } public Result res(String userId, String cu..
http request로 shell script 실행 http request로 shell script 실행 aws에서 ec2로 구성을 하려면ec2로 call이 들어가야 한다. ec2로 call이 들어가게 하려면 nginx를 띄워야 한다. nginx로 shell script run하는 방법https://stackoverflow.com/questions/22891148/nginx-how-to-run-a-shell-script-on-every-request ec2의 nginx로 call이 들어가게 하려면 endpoint가 있어야 한다.
알고리즘 문제의 가장 어려운점 운동을 하는데 잘 안되면 그 동작을 할 때 필요한 근육이 모자라기 때문이다. 알고리즘도 마찬가지 해당 문제를 푸는데 필요한 내용들 방법들이 바로 떠오르지 않기 때문이다. 그러면 무엇이 필요한가? 영문으로 되어 있는 것을 번역 하는 것이 필요한가? 1. Overlapping Subproblems 2. Optimal Substructure최적의 하위 구조ex)서울에서 부산까지 가는 가장 짧은 경로는 아래와 같다.서울 - 경부고속도로 - 상주 - 영천 - 경부고속도로 - 부산 상주에서 부산까지 가는 가장 짦은 경로도 상주 - 영천 - 경부고속도로 - 부산 이렇게 가는게 가장 빠르다. 3. Longest Increasing Sequence(LIS) 4. Longest Common Sequence(LCS)