From da3917a30a6a15eb32e24d7733c574dc3241807a Mon Sep 17 00:00:00 2001 From: sojung0628 Date: Fri, 31 Oct 2025 14:39:53 +0900 Subject: [PATCH 1/2] week05 --- package-lock.json | 6 +++ week05/keyword/keyword.md | 101 ++++++++++++++++++++++++++++++++++++++ week05/mission/mission.md | 45 +++++++++++++++++ 3 files changed, 152 insertions(+) create mode 100644 package-lock.json create mode 100644 week05/keyword/keyword.md create mode 100644 week05/mission/mission.md diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..2903c46 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "UMC_9th_node", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/week05/keyword/keyword.md b/week05/keyword/keyword.md new file mode 100644 index 0000000..3a65b5a --- /dev/null +++ b/week05/keyword/keyword.md @@ -0,0 +1,101 @@ +- 환경 변수 + + **정의** + + 환경 변수는 프로그램이 실행될 때 외부에서 설정하는 값으로, 코드 내부에 직접 입력하지 않고도 설정할 수 있습니다. + + **속성** + + - **보안성**: 비밀번호나 API 키와 같은 민감한 정보를 코드에 직접 입력하지 않고 환경 변수로 관리합니다. + - **유연성**: 개발, 테스트, 운영 환경에 따라 다른 설정을 적용할 수 있습니다. + + **장점** + + - **보안 강화**: 민감한 정보를 코드에 직접 입력하지 않아 노출 위험이 줄어듭니다. + - **환경별 설정 용이**: 다양한 환경에 맞게 설정을 쉽게 변경할 수 있습니다. + + **단점** + + - **관리 복잡성**: 환경 변수가 많아지면 관리가 어려워질 수 있습니다. + - **의존성 문제**: 환경 변수가 설정되지 않으면 애플리케이션이 제대로 작동하지 않을 수 있습니다. +- CORS + + **정의** + + CORS는 웹 브라우저에서 다른 도메인의 리소스에 접근할 수 있도록 허용하는 보안 기능입니다. + + **속성** + + - **보안 정책**: 기본적으로 브라우저는 다른 도메인의 리소스 요청을 차단합니다. + - **서버 설정 필요**: 서버에서 특정 도메인에 대한 접근을 허용하도록 설정해야 합니다. + + **장점** + + - **리소스 공유 가능**: 다른 도메인 간에 리소스를 공유할 수 있습니다. + - **유연한 API 사용**: 외부 API를 사용할 때 유용합니다. + + **단점** + + - **보안 위험**: 잘못된 설정은 보안 취약점을 초래할 수 있습니다. + - **설정 복잡성**: 정확한 설정이 필요하며, 실수로 인해 문제가 발생할 수 있습니다. +- DB Connection, DB Connection Pool + + **정의** + + - **DB 연결**: 애플리케이션이 데이터베이스와 통신하기 위해 연결을 설정하는 것. + - **연결 풀**: 미리 여러 개의 DB 연결을 만들어두고, 필요할 때마다 재사용하는 기술. + + **속성** + + - **성능 향상**: 연결을 재사용하여 성능을 높입니다. + - **자원 관리**: DB 연결 수를 제한하여 자원을 효율적으로 사용합니다. + + **장점** + + - **빠른 응답**: 새로운 연결을 생성하는 시간 절약. + - **자원 절약**: 불필요한 연결 생성을 방지. + + **단점** + + - **복잡성 증가**: 연결 풀 관리가 필요합니다. + - **잠재적 오류**: 풀에 문제가 생기면 전체 애플리케이션에 영향. +- 비동기 (async, await) + - **정의** + + 비동기 처리란 작업이 완료될 때까지 기다리지 않고 다음 작업을 수행하는 방식입니다. `async`와 `await`는 비동기 코드를 동기처럼 작성할 수 있게 도와줍니다. + + **속성** + + - **`async` 함수**: 항상 `Promise`를 반환합니다. + - **`await` 키워드**: `Promise`가 해결될 때까지 기다립니다. + + **장점** + + - **가독성 향상**: 코드가 더 직관적이고 읽기 쉬워집니다. + - **에러 처리 용이**: `try/catch`를 사용하여 에러를 쉽게 처리할 수 있습니다. + + **단점** + + - **호환성 문제**: 구형 환경에서는 지원되지 않을 수 있습니다. + - **복잡한 흐름**: 복잡한 비동기 로직에서는 흐름을 이해하기 어려울 수 있습니다. +- try/catch/finally + + **정의** + + `try/catch/finally`는 코드에서 발생할 수 있는 에러를 처리하기 위한 구조입니다. + + **속성** + + - **`try` 블록**: 에러가 발생할 수 있는 코드를 작성합니다. + - **`catch` 블록**: 에러가 발생했을 때 실행되는 코드입니다. + - **`finally` 블록**: 에러 발생 여부와 상관없이 항상 실행되는 코드입니다. + + **장점** + + - **에러 처리**: 예외 상황을 적절히 처리하여 프로그램의 안정성을 높입니다. + - **자원 정리**: `finally`를 사용하여 자원을 정리할 수 있습니다. + + **단점** + + - **과도한 사용**: 불필요하게 사용하면 코드가 복잡해질 수 있습니다. + - **비동기 코드 제한**: 비동기 코드에서는 `try/catch`가 예상대로 작동하지 않을 수 있습니다. \ No newline at end of file diff --git a/week05/mission/mission.md b/week05/mission/mission.md new file mode 100644 index 0000000..0465984 --- /dev/null +++ b/week05/mission/mission.md @@ -0,0 +1,45 @@ +**1. 특정 지역에 가게 추가하기 API** + +![Image](https://private-user-images.githubusercontent.com/156819279/438709786-a136bd68-2c70-4161-9d0d-28dfde3518f7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjE4ODkzMDksIm5iZiI6MTc2MTg4OTAwOSwicGF0aCI6Ii8xNTY4MTkyNzkvNDM4NzA5Nzg2LWExMzZiZDY4LTJjNzAtNDE2MS05ZDBkLTI4ZGZkZTM1MThmNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAzMVQwNTM2NDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02OTMzNDUzNDcwYjcyMjFkZjUwNDY1MDZhNmI3YzlmNTQzZWEyZTEyYWIzNmY4OTRjODM3MjFiMGViNTY0ZTllJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.k-3AxYEXRj5Ve20n-HmXlvQs4hYj3V6CSaZynOhLBJM) + +| **항목** | **값** | +| --- | --- | +| Method | POST | +| URL | http://localhost:3000/stores | +| Headers | [Key] Content-Type [Value] application/json | +| Headers | [Key] Authorization [Value] Bearer testtoken | +| Body | {"name": "김밥천국 강남점","address": "서울시 강남구 어딘가","regionId": 3} | + +**2. 가게에 리뷰 추가하기 API** + +![Image](https://private-user-images.githubusercontent.com/156819279/438709282-7a4de01e-c03e-4dce-aea7-6096dc830d80.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjE4ODkzMDksIm5iZiI6MTc2MTg4OTAwOSwicGF0aCI6Ii8xNTY4MTkyNzkvNDM4NzA5MjgyLTdhNGRlMDFlLWMwM2UtNGRjZS1hZWE3LTYwOTZkYzgzMGQ4MC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAzMVQwNTM2NDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ZDVhYTRmMWFjYTBmOGQ5ODI5MGE2ZjRhMGI1NDVlMjE0NWUwODBjNjZjZGRjOThjZjYyM2QwMzg3MGRkOTlhJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.fHpFwHTjUDOWuPw18nMPYfAhFRzhbfZT2kPA4wOM-5E) + +| **항목** | **값** | +| --- | --- | +| Method | POST | +| URL | http://localhost:3000/reviews | +| Body | {"memberId": 3,"storeId": 10,"body": "음식이 정말 맛있었어요!","score": 5} | + +**3. 가게에 미션 추가하기 API** + +![Image](https://private-user-images.githubusercontent.com/156819279/438710701-a7a13961-8b0f-471f-9a8f-bfeba5ad0510.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjE4ODkzMDksIm5iZiI6MTc2MTg4OTAwOSwicGF0aCI6Ii8xNTY4MTkyNzkvNDM4NzEwNzAxLWE3YTEzOTYxLThiMGYtNDcxZi05YThmLWJmZWJhNWFkMDUxMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAzMVQwNTM2NDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MjE0OTgwOTYxMDAwZjkwZGUzOTYwNmZhNmJlNTBmZTEzOTQ4MGE1YzE3YWU0YTNhM2NiNTJkMWE1Njk4MGJkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.emuyU-Lng5DI--zx9D8P-J_CXwRC8tdJwUf1zNvhf2k) + +| **항목** | **값** | +| --- | --- | +| Method | POST | +| URL | http://localhost:3000/stores/10/missions | +| Headers | [Key] Content-Type [Value] application/json | +| Headers | [Key] Authorization [Value] Bearer testtoken | +| Body | {"title": "10,000원 이상 주문하기","category": "한식","reward": "500 포인트"} | + +**4. 가게의 미션을 도전 중인 미션에 추가(미션 도전하기) API** + +![Image](https://private-user-images.githubusercontent.com/156819279/438711467-622b1eb8-224b-464e-8c9f-a653f215098b.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NjE4ODkzMDksIm5iZiI6MTc2MTg4OTAwOSwicGF0aCI6Ii8xNTY4MTkyNzkvNDM4NzExNDY3LTYyMmIxZWI4LTIyNGItNDY0ZS04YzlmLWE2NTNmMjE1MDk4Yi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUxMDMxJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MTAzMVQwNTM2NDlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NTQ4OGJjMGU0NWFiNWI5Y2E0NTVmMjEyN2Y1YjZmMDRlNTQ0MTAwNGE0MWQyODAxYTk0ZjVhYjFjOGI5MjlkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6AW95pnwwhKfBX0hagEr0b8atXrRnti-xR0TmqHrLS0) + +| **항목** | **값** | +| --- | --- | +| Method | POST | +| URL | http://localhost:3000/member-missions | +| Headers | [Key] Content-Type [Value] application/json | +| Headers | [Key] Authorization [Value] Bearer testtoken | +| Body | {"memberId": 3,"missionId": 7} | \ No newline at end of file From ac0f9a9dd7194af3e9fb2b9e430976e8aef64bba Mon Sep 17 00:00:00 2001 From: sojung0628 Date: Fri, 31 Oct 2025 15:25:55 +0900 Subject: [PATCH 2/2] week05_2 --- package-lock.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 package-lock.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 2903c46..0000000 --- a/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "UMC_9th_node", - "lockfileVersion": 3, - "requires": true, - "packages": {} -}