👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

API 5

서비스 레이어란 무엇이고, 왜 필요한가?

아키텍처를 설계한 것을 보면서 어떤 api는 DB에 바로 접근하는 것을 볼 수 있었고, 어떤 api는 서비스 레이어를 거쳐 db에 접근하는 것이 있었다. 이를 통해 왜 서비스 레이어를 사용하는가에 대한 궁금증이 생겼다.  서비스 레이어란 무엇일까?서비스 레이어는 애플리케이션에서 비즈니스 로직(업무 규칙)을 처리하는 중간 계층이다. API 레이어는 요청과 응답만 처리하고, 서비스 레이어는 데이터 가공 및 검증 등 비즈니스 로직을 담당한다. 서비스 레이어가 없다면?서비스 레이어가 없으면 비즈니스 로직과 API 로직이 섞이게 된다.같은 로직이 반복되면 유지보수가 어려워지고, 로직이 복잡해지면 API 레이어가 비대해지며, 로직 수정 시 API 코드까지 수정해야한다. 원래는 API 레이어가 요청을 받아 비즈니스 ..

Development/APIs 2024.12.18

HTTP 204 상태 코드 처리 오류

API에서 고객 데이터를 삭제하는 DELETE 요청을 처리하던 중, 데이터는 정상적으로 삭제되었지만 " Delete failed "라는 메시지만 반환되었음if code == 200: return {'message': 'Customer deleted successfully'}, 200else: return {'message': 'Delete failed'}, 500 MongoDB 응답 값을 출력해봤고, 삭제가 정상적으로 완료되었음에도 불구하고 204 상태 코드가 반환된다는 것을 확인DELETE 요청이 성공적으로 처리되었을 때 204 No Content도 반환될 수 있기 때문에, 이를 반영해 코드를 수정  HTTP 상태 코드 200 OK: 요청이 성공적으로 처리됐고, 일반적으로 반환할 데이터가 있..

Development/APIs 2024.09.20

고객 관리 프로젝트 구조 분석하기 - 각 Layer의 역할

DB - MongoDB / Framwork - Flaskapi-customer-manager├── common│ ├── conf│ │ ├── __init__.py│ │ ├── ConfigControl.py│ │ └── parser_toml.py│ ├── db│ │ ├── __init__.py│ │ ├── influxdb_interface.py│ │ ├── mongodb_control.py│ │ └── mongodb_interface.py│ └── system_protos│ ├── __init__.py│ ├── base_model.py│ ├── conv_time.py│ ├── datetime_calc.p..

Development/APIs 2024.09.12

[DEV] DOM API 2

- DOM API (Document Object Model, Application Programming Interface) // HTML 요소(Element) 모두 검색/찾기 const boxEls = document.querySelectorAll('.box'); console.log(boxEls); // 찾은 요소를 반복해서 함수 실행 // 익명 함수를 인수로 추가 boxEls.forEach(function () {}); //첫 번째 매개변수 (boxEl) : 반복 중인 요소 //두 번째 매개변수 (index) : 반복 중인 번호 boxEl.forEach(function (boxEl, index) {}); // 출력 boxEls.forEach(function (boxEl, index) { boxEl.c..

카테고리 없음 2021.06.28

[DEV] DOM API 1

- DOM API (Document Object Model, Application Programming Interface) // HTML 요소(Element) 1개 검색/찾기 const boxEl = Document.querySelector('.box'); //HTML 요소에 적용할 수 있는 메소드 boxEl.addEventListener(); // 인수(Arguments)를 추가 가능! boxEl.addEventListener(1,2); // 1 - 이벤트(Event, 상황) boxEl.addEventListener('click', 2); // 2 - 핸들러(Handler, 실행할 함수) boxEl.addEventListener('click', function() { console.log('click'..

카테고리 없음 2021.06.27
반응형