본문 바로가기

개발/개발의 ㄱ

[Js] 함수형 프로그래밍 vs 객체지향 프로그래밍 함수형 프로그래밍은 함수 정의및 실행을 통해 상태를 변경하고 확인한다. 어떤 프로젝트든 상태 관리가 매우 중요한데, 함수형은 상태 불변성을 가정하고 개발한다. 아래 상태에서 A라는 사람이 a의 값을 2로 바꿨다. 그런데 실수로 b를 바꾸거나, a를 바꾸면서 b를 삭제할수 있다. B라는 사람은 b를 바꾸게끔 코드를 짰다. 그런데 A사람이 b를 삭제했다면, 실행시 undefined 에러가 발생한다. 이런 상황은 모든 로직들을 디버깅 혹은 콘솔을 찍어봐야 알게 되는데, 일일히 확인하는건 생산성이 떨어져 개발자들끼리 불변성을 약속한 것이다. const state = { a: 1, b: 2 } 즉, 자신이 바꾸고자 하는 곳만 바뀌어야한다. *call by value, call by reference를 알아야하는 .. 더보기
RESTful api란 REST 원리를 따른 api를 RESTful api라 한다. 간단한 REST 규칙 1. METHOD 1) get : 조회시 사용 2) post : 리소스 등록시 사용 3) put : 리소스 교체 4) patch : 리소스 수정 5) delete : 리소스 삭제 2. URL Design 1) 리소스는 되도록 명사를 사용한다 2) '/'로 계층 관계를 나타내고, 마지막에 /은 제거한다 3) '_'을 사용하지 않고 '-'을 사용한다 4) 소문자를 사용한다 5) 파일 확장자는 헤더로 표시한다 6) 리소스 관계는 '/리소스/리소스 ID/관계가 있는 리소스'로 설계한다 3. HTTP Status -200(OK, 성공) : 정상적으로 데이터를 응답받은 경우 (GET, PUT) -201(Created, 생성) : 스토.. 더보기
[AWS] auto-scaling 구현 정리 aws에서 auto-scaling 구현 방식 0) ami 생성 1) 시작 템플릿 생성 - 0)에서 생성한 ami 선택 - user-data 설정 2) 로드 밸런서 생성 3) 대상 그룹 생성 4) auto-scaling-group 생성 - 2)에서 생성한 시작 템플릿 선택 - 3)에서 생성한 로드 밸런서 선택 여기서 중요한건 asg에서 인스턴스를 scale-in, scale-out 할때 새로운 인스턴스에 서비스가 켜져야 한다는 점입니다. *시작 템플릿 생성시 user-data로 deploy script를 짜시면 됩니다 더보기
[AWS] an instance was launched in response to an unhealthy instance needing to be replaced auto-scaling은 특정 조건을 충족하면 자동으로 새로운 instance를 추가/교체 해줍니다. 그런데 ELB도 문제 없는데, 계속 꺼졌다 켜지면 시작템플릿을 교체해보세요. 시작 템플릿은 docker처럼 기본 설정들을 저장해놓고 가져다 쓸수 있습니다. 그중 ami도 설정해주는데, 시작템플릿을 생성한지 오래됐으면 ami도 과거 버전일 확률이 높습니다. 저의 경우 시작 템플릿을 새로 생성해 적용하니 정상작동 됐습니다. *target group이 unhealthy 상태면 auto-scaling은 실패라 간주하고 재생성을 합니다. elb 확인 주기를 넉넉히 두시고, target-group에서 listen하고 있는 port를 작업중에 내리지 않았는지 확인하시는 것도 방법입니다 감사합니다 더보기