{"id":28466345,"url":"https://github.com/iolo/berry-api","last_synced_at":"2025-09-18T16:45:32.599Z","repository":{"id":4691574,"uuid":"5838486","full_name":"iolo/berry-api","owner":"iolo","description":null,"archived":false,"fork":false,"pushed_at":"2012-09-17T08:54:58.000Z","size":128,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-23T13:18:57.521Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iolo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-09-17T08:54:07.000Z","updated_at":"2013-10-24T12:47:38.000Z","dependencies_parsed_at":"2022-08-18T05:40:22.283Z","dependency_job_id":null,"html_url":"https://github.com/iolo/berry-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/iolo/berry-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iolo%2Fberry-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iolo%2Fberry-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iolo%2Fberry-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iolo%2Fberry-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iolo","download_url":"https://codeload.github.com/iolo/berry-api/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iolo%2Fberry-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275797835,"owners_count":25530254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-18T02:00:09.552Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T06:08:57.669Z","updated_at":"2025-09-18T16:45:32.558Z","avatar_url":"https://github.com/iolo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"berry-api\n=========\n\n```\n     ______                       o  o\n    / ____ |                     o  o  o\n   / /___/ /  __   __,__  __,__   __  __ \n  / ____ \u003c  / o_| / ____|/ ____| / / / /\n / /___/ / / \u003c_  / /    / /     | |_/ /\n/_______/ |___/ /_/    /_/     _|__  /\n                              /_____/\n```\n\n## 개발 단계\n\n1. 개발(development)\n\u003e 개별 개발자들이 자기 소유의 로컬 개발 장비로 개발하고 실행. 개발이 완료되면 2단계로...\n2. 테스트(test)\n\u003e 로컬 개발 장비 또는 CI 서버에서 테스트를 실행. 테스트가 성공하고 모든 항목의 개발이 끝나면 3단계, 실패하거나 아직 개발해야할 항목이 남아 있으면 다시 1단계로...\n3. 스테이징(staging)\n\u003e 공용 개발 장비로 실행 및 통합 테스트(QA/QC). QA/QC 통과하면 4단계, 실패하면 다시 1,2 단계로...\n4. 상용(production)\n\u003e 실 서비스 장비로 실행\n\n## 설정\n\n\u003e `config` 디렉토리 아래에 각 개발 단계별 설정이 있음.\n\u003e 특정 개발 단계의 설정이 공통 설정보다 우선함.\n\n* 공통: `config/default.js`\n* 개발: `config/development.js`\n* 테스트: `config/test.js`\n* 통합: `config/staging.js`\n* 상용: `config/production.js`\n\n### 로그 설정\n\n`config.logger.logsDir`에 로그 파일을 보관할 디렉토리 설정.\n\n* 접근 로그\n\n`config.logger.accessLog`가 `true`면\n접근 로그를 \n`config.logger.accessLogFileName`에 지정한 이름의\n파일에 기록(아니면 stdout)\n단, 파일이름 중에 `TIMESTAMP`는 오늘의 `YYYY-MM-DD`로 대체됨.\n\n* 에러 로그\n`config.logger.errorLog`가 `true`면 에러 로그(console.log 등의 출력)를\n`config.logger.errorLogFileName`에 지정한 이름의\n파일에 기록(아니면 stdout/stderr)\n단, 파일이름 중에 `TIMESTAMP`는 오늘의 `YYYY-MM-DD`로 대체됨.\n\n## 테스트\n\n* 개별 테스트\n\n\u003e `jake test:test[테스트파일이름]`\n\n* 일괄 테스트\n\n\u003e `jake test:all` 또는 `npm test`\n\n테스트 결과는 `docs/test-all.html`에 있음.\n\n* 테스트 커버리지 리포트\n\n\u003e `jake test:coverage`\n\n테스트 커버리지 리포트는 `docs/test-coverage.html`에 있음.\n\n## 배포/실행\n\n### 로컬 실행\n\u003e NODE_ENV=development\n\n\u003e `npm start` 또는 `node bin/launcher`\n\n\u003e `node lib/main`으로 실행하면 클러스터없이 실행(디버깅용).\n\n### TODO: 통합 서버 배포/실행\n\u003e NODE_ENV=staging\n\n1. 원격 git 저장소에 `STAGING` 브랜치에 머지/푸시하고,\n\u003e `git push origin STAGING`\n2. 관리 서버에 `deploy` 명령을 내리고\n\u003e `curl http://localhost/astral/berry-dev/deploy`\n3. 관리 서버에 `restart` 명령을 내리고\n\u003e `curl http://localhost/astral/berry-dev/restart`\n4. 결과를 확인\n\u003e `curl http://localhost/astral/berry-dev/status`\n\n### TODO: 상용 서버 배포/실행\n\u003e NODE_ENV=production\n\n1. 원격 git 저장소에 `PRODUCTION` 브랜치에 머지/푸시하고,\n\u003e `git push origin PRODUCTION`\n2. 관리 서버에 `deploy` 명령을 내림\n\u003e `curl http://localhost/astral/berry/deploy`\n3. 관리 배포 서버에 `restart` 명령을 내림\n\u003e `curl http://localhost/astral/berry/restart`\n4. 결과를 확인\n\u003e `curl http://localhost/astral/berry/status`\n\n## 기타\n\n### npm tasks\n\n```\nnpm start\nnpm test\n```\n\n### jake tasks\n\n```\n$ jake -T\njake jslint:jslint     # jslint a js file  \njake jslint:all        # jslint all js files  \njake test:test         # test a mocha test-case  \njake test:all          # test all mocha test-cases  \njake test:coverage     # generate test coverage report  \njake thrift:checkout   # checkout thrift IDL files from remote git repository  \njake thrift:thrift     # generate js files for a thrift IDL file  \njake thrift:all        # generate js files for all thrift IDL files \n```\n\n#### 소스 검증\n\n* 개별 소스 검증\n\n\u003e `jake jslint:all`\n\n* 일괄 소스 검증\n\n\u003e `jake jslint:jslint[소스파일이름]`\n\n#### TBW: thirft 소스 생성\n\n* ...\n\n\n----\n*may the source be with you...*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiolo%2Fberry-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiolo%2Fberry-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiolo%2Fberry-api/lists"}