본문 바로가기

전체 글

(108)
[20일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 도메인 설계 내용을 바탕으로 DB와 연동하기 위한 방법을 구상한 후 테스트를 작성한다. MySQL ① MySQL을 설치한다. (MySQL Community Server) ② IntelliJ의 Database 탭에서 Data Source(MySQL)를 추가한다. ③ Test Connection을 통해 연결을 확인한다. ④ MySQL console을 통해 새로운 데이터베이스를 생성한다. create database {name}; ⑤ localhost에 새로운 계정을 생성한다. create user '{name}'@'localhost' identified by '{password}'; 계정 생성 확인 : select 'user' from 'mysql'.'user'; 권한 확인 : show grants for ..
[19일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 게시판 서비스를 만들기 위한 기본 도메인을 설계한다. - 도메인 ERD 다이어그램 작성 - 자바 클래스로 도메인 표현 도메인 ERD 다이어그램 작성 https://app.diagrams.net/ Flowchart Maker & Online Diagram Software Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a ..
[18일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) API 설계 API 설계 내용을 구글 스프레드 시트 문서에 정리한다. https://docs.google.com/spreadsheets/u/0/ Facebook에 로그인 Notice 계속하려면 로그인해주세요. www.facebook.com ① endpoints API 설계를 위한 항목을 작성한다. (종류, url, method, 기능, 설명) ② view(화면) 경로를 작성한다. RootPath(/), error 페이지, UseCase 참고(로그인, 회원 가입, 게시판, 게시글, 검색) ③ api(데이터 전송) 경로를 작성한다. 회원 가입, 로그인 요청, 게시글 목록 조회, 게시글 조회, 게시글 등록/수정/삭제, 댓글 목록 조회, 댓글 조회, 댓글 등록/수정/삭제 +) api에 대한 버전 관리가 필요하다..
[17일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) UseCase? 시스템 또는 서비스를 설계할 때 이를 이용하는 사용자의 전체적인 이용 패턴을 분석해놓은 것. 설계하려는 시스템을 문서화하여 다른 사람과 커뮤니케이션 할 때 사용한다. 대표적인 도구 Lucidchart : Gihub 연동(X), UseCase 관련 템플릿(O) diagrams.net(구 draw.io) : Gihub 연동(O), UseCase 관련 템플릿(X) diagrams.net(구 draw.io)를 이용하여 UseCase를 작성하는 방법 Github 연동된 상태 ① UML 메뉴를 선택한다. ② Actor : 이용자를 나타내는 아이콘을 생성한다. ③ Frame : 시스템을 나타내는 아이콘을 생성한다(제목을 해당 시스템으로 작성). ④ Activity : UseCase를 나타내는 아이콘을..
[16일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) GitHub Issues : 업무들을 작성하는 공간(안건, 업무) New Issues > Assignees : 일을 수행할 담당자 > Labels > enhancement : 새로운 기능을 개발할 때 붙이는 라벨. Milestones : 개발 일정을 날짜별로 관리할 때 사용한다. Pull requests : 완료된 개발 코드에 어떠한 코드를 요청하여 반영하는 공간(코드 리뷰) Actions : 빌드와 배포를 자동화하는 공간 Projects : 애자일 소프트웨어 방법론(칸반 보드). 일의 진행 상황을 관리하는 공간(할일, 진행 중, 완료) 기존(특정 레포에 종속된 프로젝트 생성) Beta(모든 레포를 대상으로 총괄하는 프로젝트 생성) > 프로필에 새로운 프로젝트를 등록해야 함. 자동화하는 방법 : ...(..
[15일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) 게시판 서비스 프로젝트의 목표 누구나 이해하기 쉬운 소재로 명확한 기능 요구 사항을 만든다. 요구사항을 구현하는데 도움이 되는 각종 문서 작업을 경험한다. 자바 + 스프링 부트로 프로젝트 요구 사항을 실제로 구현하는 기술적인 방법을 익힌다. 최신 버전의 기술을 사용해 보면서 기술 동향을 파악하고, 새로운 문제와 해결 방법을 확인한다. 기획과 문서 작성부터 개발, 형상관리, 테스트, 배포까지 개발 프로세스 전반을 경험한다. 문서 작업 문서를 통해 개발할 프로젝트의 목적, 내용, 진행 상황을 공유한다. 내용이 구체적일수록, 프로젝트 개발 내용이 잘 동기화되고 진행이 막히지 않는다. 업무 기록을 남김으로써 업무 진척 상황과 내 성과(어필)가 잘 드러나게 된다. 도메인과 ERD 설계, 유즈케이스 : diagra..
[14일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) MVC vs. Spring MVC ① Dispatcher Servlet : 모든 요청을 Dispatcher Servlet이 받도록 한다. (직접 만든) MVC : HttpServlet를 상속받는다. Spring MVC : org.springframework.web.servlet; FrameworkServlet를 상속받는다. 결과적으로 HttpServlet를 상속받는다. FrameworkServlet > HttpServletBean > HttpServlet ② Handler Mapping : 적절한 Handler(Controller)를 선택한다. 유사 : service(Object handler) ↔ doDispatch(getHandler) : Handler를 반환하는 코드 유사 : service(Hand..
[13일차] 10개 프로젝트로 완성하는 백엔드 웹개발(Java/Spring) DI(Dependency Injection) 의존성 주입 한 객체(A)가 다른 객체(B)를 사용할 때 "의존성이 있다"고 한다. A가 B를 의존한다. A -- B : 의존 대상(B)이 변경되면 A에게 영향을 미친다.(강한 결합) A -- Interface -- B : 의존 대상(B)의 변화에 영향을 덜 받게 된다.(느슨한 결합) 런타임 시 의존 관계를 맺는 대상을 외부에서 결정하고 주입해 주는 걸 의미한다. 스프링 프레임워크는 DI 기능을 지원하는 프레임워크이다. DI(Dependency Injection) 장점 코드의 유연 : 의존성 주입을 인터페이스 기반으로 설계한다. 변경의 유연 : 객체의 결합도가 낮으면 변경이 용이하고, 테스트하기 좋은 코드가 된다. 실습 : DI 프레임워크 만들기 Applica..