2020/02(18)
-
[재독서] 클린 아키텍쳐
소프트웨어 아키텍쳐의 목표 필요한 시스템을 만들고 유지보수하는데 투입 되는 인력을 최소화한다. 개발자 입장에서 전력을 기울이지 않는 개발자는 없다. 소프트웨어의 어원처럼 소프트웨어는 반드시 부드러워야한다. 구조적 프로그래밍 Goto 문이 없어진 이유: Goto 문은 재귀 호출, 구조적 분해라는 과정을 방해하는 요소 모든 프로그램은 순차 분기 반복이라는 구조로 만들 수 있다. =>프로그램에서도 유클리드 계층 구조 를 만들 수 있다. 객체 지향 프로그래밍 객체 지향의 3가지 키워드 : 캡슐화, 상속, 다형성 자바와 C# 은 헤더와 구현체 분리하는 방식을 버렸고 코드상에 어떤 멤버변수가 있는지 알게됨으로서 캡슐화이 가치가 일정 훼손되었다. 자바와 C# 에서의 상속은 C++에서도 눈속임으로 가능한 방법이었다. ..
2020.02.28 -
Vault
Vault HashCorp 에서 만든 오픈소스 프로젝트다. 깃허브 상에 존재하는 ID / Password 를 저장하는 방식은 보안적으로 취약하다. 따라서 이 정보를 vault 서버에 저장해놓는다. 어플리케이션 시작시 vault 서버에서 가져와 ID / Password를 사용한다. 높은 확장성, 더불어 Spring Vault 라고 오픈소스 프로젝트로 Vault 를 간단히 사용할 수 있는 모듈이 존재한다. Secret 가장 간단하게 사용자가 요청한 값을 key-value 로 저장할 수 있는 데이터 secret/mydbs/mysql username hello password world ... vault: uri: vault 도메인 token: vault 토큰 path: mysql: secret/mydbs/my..
2020.02.24 -
카카오 페이 결제 흐름
참고 링크 전제 1) localhost:3000 은 web 서버다. 전제 2) localhost:8080 은 api 서버다. 전제 3) web 서버와 api 서버는 rest api 로 통신하고 있다. 정보 1) KakaoAK xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 에서 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx는 admin 키다. 1. web 에서 api 서버에 결제 준비 api 호출 https://localhost:8080/payment/ready 2. api 서버가 kakao pay 의 ready api 를 호출한다. curl -v -X POST 'https://kapi.kakao.com/v1/payment/ready' \ -H 'Authorization: Ka..
2020.02.22 -
Spring security architecture summary
AuthenticationFilter 의 결과로 Security context 가 채워진다. 사용자의 Request 가 들어오면 해당 요청을 처리하기 위해 어떤 필터를 사용할지 불러온다. WebSecurityConfigurerAdapter 를 작성하는 과정은 어떤 필터들을 사용해야 하는지 지정하는 과정과 같다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .mvcMatchers("/account/*..
2020.02.19 -
Next.js
강의 링크 강의 문서 장점 - 서버 사이드 렌더링 - 검색 최적화 서버 사이드 렌더링 : 리액트로 만들어진 앱들은 자바스크립트가 동작하지 않는 환경에서 소스보기를 했을 때, 실제 보이는 값과 다르게 안 보이는 컨텐츠들이 있을 수 있다. 설치 npm add next npm add react npm add react-dom package.json 스크립트 ... "scripts": { "start": "next", "build": "next build", // .next/server/static/{cache}/ 아래 빌드된 파일이 만들어진다. "export": "next export", // 빌드한 파일이 out 이라는 디렉토리에 SPA 파일이 만들어진다. ... } ... pages 폴더 Web 사이트를 ..
2020.02.16 -
프론트 작업용 지식 2 - Redux saga, generator
동기처리 참조 영상 : 링크 Redux 의 문제 : 모든게 동기처리다. 변경 요청이 들어가면 바로바로 반영되기 때문에, API 호출과 같은 비동기요청을 처리하려면 미들웨어를 써야한다. Redux 의 기능 확장을 위해 써는 것을 미들웨어라고 한다. 해당 문제를 해결하기 위한 미들웨어중 유명한 것이 1. Redux thunk -> 쉬운 대신 기능이 약하다. 2. Redux saga 3. Redux observable Redux Saga redux 의 특정 action 이 실행되는 것을 대기하다가 받아서 비동기 동작을 처리하고 결과에 맞게 또 다른 동작을 수행한다. export default function* rootSaga() { yield all([ call(mySagaA), call(mySagaB) ])..
2020.02.16