[{"data":1,"prerenderedAt":69},["ShallowReactive",2],{"post-document:\u002Fproject\u002F2026\u002F08\u002F17\u002F2-구현-시작\u002F":3},{"id":4,"title":5,"body":6,"categories":54,"date":56,"description":57,"extension":58,"image":59,"key_concepts":59,"last_modified_at":59,"legacyPath":60,"meta":61,"navigation":63,"part":59,"path":64,"published":63,"robots":59,"seo":65,"series":59,"stem":66,"strengths":59,"summary":59,"tags":67,"tradeoffs":59,"__hash__":68},"posts\u002Fposts\u002Fproject\u002F2. 구현 시작.md","1. Spring Boot 구현",{"type":7,"value":8,"toc":49},"minimark",[9,13,17,20,23,26,29,34,37,40,43,46],[10,11,5],"h1",{"id":12},"_1-spring-boot-구현",[14,15,16],"p",{},"딸~깍의 시대라지만, 그래도 작동구조는 알고 있어야 할 것이 아닌가?",[14,18,19],{},"기능을 한 번에 구현하지 않고 작은 단계별로 정상 동작을 검증한다.",[14,21,22],{},"다시 한번 프로젝트 구조를 보고 가자",[14,24,25],{},"raspberry-monitor\u002F",[14,27,28],{},"├── backend\u002F\n│   ├── src\u002F\n│   ├── build.gradle\n│   ├── Dockerfile\n│   └── ...\n│\n├── frontend\u002F\n│   ├── src\u002F\n│   ├── package.json\n│   ├── Dockerfile\n│   ├── nginx.conf\n│   └── ...\n│\n├── raspberry\u002F\n│   ├── sender.py\n│   └── requirements.txt\n│\n├── docker-compose.yml\n│\n├── .gitignore\n│\n└── README.md",[30,31,33],"h2",{"id":32},"step-1-spring-boot-생성","Step 1. Spring Boot 생성",[14,35,36],{},"Spring Initializr를 이용해서 Backend 프로젝트를 만든다.",[14,38,39],{},"Dependency:",[14,41,42],{},"Spring Web\nSpring WebSocket\nSpring Data JPA\nPostgreSQL Driver\nLombok\nValidation",[14,44,45],{},"Spring Boot가 정상적으로 실행되는지만 확인",[14,47,48],{},"localhost:8080",{"title":50,"searchDepth":51,"depth":51,"links":52},"",2,[53],{"id":32,"depth":51,"text":33},[55],"project","2026-08-17 01:05:35 +0900","딸깍의 시대라지만, 그래도 작동구조는 알고 있어야 할 것이 아닌가?","md",null,"\u002Fproject\u002F2026\u002F08\u002F17\u002F2-구현-시작\u002F",{"layout":62},"post",true,"\u002Fposts\u002Fproject",{"title":5,"description":57},"posts\u002Fproject\u002F2. 구현 시작",[],"RozwUSvUet64BpQjqBUXMrNN04nCIwfGOQZL77pJYxM",1788744789977]