백엔드
-
JavaScript에서의 객체 순서 보장법개발/백엔드 2022. 9. 26. 13:12
{ "id": 1, "name": "jaytsol", "address": "경기도 성남시 ...", "phone_number": "010-..." } 흔히 사용하는 object.assign() 등으로 객체를 생성하면 키의 삽입 순서에 따라 객체의 형태가 정해진다. 기능적으로는 순서가 어떤들 아무 상관이 없겠으나, 프론트로 넘겨주려는 객체를 생성할 때 각 객체의 특징을 한눈에 알아보기 좋게 정렬하고 싶다. 가장 중요한 id값이나 name 등이 중요한 정보에 해당하므로 위쪽으로 올리는 식이다. 이는 팀의 개발 효율성을 높일 수 있다. 1. object.key()를 이용 Object.keys({ 2: true, 1: true, '00': true, 'b': true, 'a': true, '3': true, }..
-
Param, Query, Body개발/백엔드 2022. 8. 17. 17:26
그동안 특히 param과 query에 대한 명확한 구분 없이 혼용해서 사용했던 것 같다. 제대로 정리해서 보다 명확하고 보기 좋은 API를 생산해야겠다. 1. req.param 주소에 포함된 변수. e.g) https://jaytsol.tistory.com/entry/이미지에-속지-마라 이 경우 entry와 '이미지에-속지-마라'가 param이 되겠다. 2. req.query 주소 바깥의 ? 이후의 변수. e.g) https://www.youtube.com/results?search_query=%EC%BF%BC%EB%A6%AC 유튜브에 '쿼리'를 검색했을때 나오는 주소. 이 경우 search_query=%EC%BF%BC%EB%A6%AC 가 query가 되겠다. 3. req.body XML, JSON, M..
-
Kafka - Acks 옵션개발/백엔드 2022. 7. 26. 10:50
메시지의 손실을 방지하기 위한 전달 완료 확인 옵션인 acks 옵션. 간단히 말하면, acks = 0 이면 메시지 전달을 확인하지 않는다. acks = 1 이면 브로커 중 리더에 대해서만 메시지를 수신했는지 확인한다. acks = -1 이면 리더와 팔로워 브로커 모두에 대해 메시지를 수신했는지 확인한다. 몇 개의 팔로워까지 확인을 하는지는 추가적인 옵션(min.insync.replicas)에 따라 설정 가능하다. 자세한 내용은 다음 링크의 글쓴이분이 자세히 설명을 해주셨으니 참고바람. https://www.popit.kr/kafka-%EC%9A%B4%EC%98%81%EC%9E%90%EA%B0%80-%EB%A7%90%ED%95%98%EB%8A%94-producer-acks/
-
Transaction에 대해개발/백엔드 2022. 7. 18. 21:39
여러 읽기/쓰기를 논리적으로 하나로 묶은 단위 트랜젝션 시작 - 여러 쿼리 실행 - 커밋(DB에 반영) 또는 롤백 모두 커밋(DB에 반영) 또는 롤백 이러한 트랜젝션(최소 단위)가 없다면, 클라이언트가 요청을 보내고 다시 그 결과를 받기 전까지 여러 쿼리문이 실행될 텐데, ex) 1.1: select - 1.2: update - 1.3 insert .... 여기서 1.3에만 문제가 발생한다면?... 위의 쿼리문이 실행되는 도중 문제가 발생해 중단된다면 원상복귀를 위해 1.3을 제외한 1.1, 1.2만 revert해야하는 참사가 발생함. 이러한 상황을 그저 하나의 트랜젝션을 롤백해주는 것만으로 해결. 트랜젝션의 범위는 커넥션 기준. 여러 메서드 호출이 하나의 커넥션으로 묶여야함. 그렇지 않으면 이미 특정 ..