본문 바로가기

개발

[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를 작업중에 내리지 않았는지 확인하시는 것도 방법입니다 감사합니다 더보기
[MySql] auto_increment 칼럼이 1씩 증가하지 않는 경우 쿼리문 실패시 rollback을 하면 row가 추가 되있지 않습니다. 그런데 auto_increment는 증가합니다. 그래서 인덱스가 1씩이 아닌, 실패한 row 수만큼 벌어진것을 알수 있습니다. 더보기
[AWS] 프리티어 설명서 EC2 -월 750시간까지 무료입니다. ec2 instance가 두개면 각각 375시간씩 무료입니다. 인스턴스별 무료가 아닌점 주의하셔야 합니다 EBS -30G까지 무료입니다. 중지된 인스턴스도 계산되며, 총 인스턴스의 EBS 합이 30G을 넘기면 요금이 부과됩니다 RDS -프리 티어는 1 rds에 대해서만 적용됩니다. 2개 이상부터는 요금이 부과됩니다 더보기
[Mac] 파일 찾기 프로그램 설치는 주로 인터넷 글들을 보고 진행합니다. 시키는대로 하니, 어디에 저장했었는지 기억이 나지 않을수 있습니다. 오늘은 파일 or 폴더를 찾는 명령어를 공유할까 합니다. # 파일 찾을때 find {경로} -name "{파일명}" -type f # 폴더 찾을때 find {경로} -name "{파일명}" -type d 경로: ., / etc .은 전체에 대해 찾습니다 /은 root 경로에서 찾습니다 이상입니다 더보기
[VsCode] 여러 커서 작업 prettier사용시 들여쓰기대신 스페이스바로 일일히 작업해야할때가 있습니다. 이 단축키를 알기전까지 손수 이태리 장인처럼 해줬는데요. 저는 시티보이여서 더이상 못참고 단축키를 쓰기 시작했습니다. mac에서는 아래 명령어로 여러 줄에 대해 커서를 적용할수 있습니다. ⌘(command) + ⌥(option) + ↑ or ↓ 이상입니다 더보기