
맨 처음으로 DB 테이블에 업로드된 파일 이미지, 파일 경로를 저장할 수 있도록 컬럼을 추가해 준다. 테이블이 수정되었으므로 당연히 엔티티도 수정해 준다. 이제 다시 코드로 돌아와서!! 파일 업로드를 구현하기 위해서는 form 태그에 아래 코드를 꼭 추가해주어야 한다! enctype="multipart/form-data" 글 작성 시 파일 업로드가 가능하도록 boardwrite.html 수정 업로드된 이미지를 확인할 수 있도록 boardview.html 수정 컨트롤러 코드 수정(매개변수에 MultipartFile 추가) 글 작성 + 파일 업로드 서비스단 코드 수정 //글 작성 처리 public void write(Bootboard bootboard, MultipartFile file) throws Exc..

🤍게시판 글 상세 조회 구현 글 조회 컨트롤러 코드 작성 @GetMapping("/board/view") //localhost:8080/board/view?id=1 public String boardView(Model model, Integer id){ model.addAttribute("bootboard",boardService.boardView(id)); return "boardview"; } 글 조회 화면 boardview.html 작성 제목입니다. 내용입니다. 글 조회 서비스 코드 작성 //특정 게시글 불러오기 public Bootboard boardView(Integer id){ return boardRepository.findById(id).get(); } 글 목록에서 제목을 클릭했을 때 상세..

프로젝트 구조는 아래와 같이 만들었다. 이번에는 게시글 폼(boardwrite.html), 게시글 목록(boardList.html)까지 만들고 컨트롤러, 서비스, repository를 연결해서 게시글을 작성해서 디비에 넣고 글 목록까지 출력하는 것을 구현할 것이다. 🤍게시판 글 작성 구현 먼저 컨트롤러를 작성해 주고 엔티티 작성 Entity(엔티티) : 데이터베이스에 쓰일 필드와 여러 엔티티간 연관 관계를 정의함. Repository 작성 Entity에 의해 생성된 DB에 접근하는 메서드 (EX. findAll()...)들을 사용하기 위한 인터페이스, 위에서 엔티티를 선언함으로써 데이터베이스 구조를 만들었다면 여기에 어떤 값을 넣거나 넣어진 값을 조회하는 등의 CRUD를 해야 쓸모가 있는데 이것을 어떻게..

학원 수료 후 취업 전까지 스프링부트 미니 프로젝트를 하나 더 해보기로 했다. 프로젝트 시작에 앞서 스프링부트와 좀 더 친해지기 위해(??) 유튜브 스프링부트 무작정 따라하기 영상을 보고 게시판을 만들어보려고 한다. 역시 모든 웹 개발의 기초는,,,게시판이지,,😎 🤍인텔리제이 프로젝트 생성 1. Gradle 프로젝트 생성 2. ArtifactId는 board로 지어준다. 3. 의존성 추가 -- 이번에는 타임리프, MySQL을 사용할 거라서 아래와 같이 추가해 주었다. dependencies { implementation('org.springframework.boot:spring-boot-starter-web') implementation('org.springframework.boot:spring-boot..

💡프로젝트 소개 온라인 쇼핑몰 + 레시피 커뮤니티 웹 애플리케이션 구축을 목표로 한 RecipeToYou 프로젝트 기획 마켓컬리 클론코딩 (+레시피 커뮤니티) 기존 마켓컬리에 사용자들이 쇼핑몰에서 구매한 식재료를 활용하여 레시피를 올리는 레시피 커뮤니티를 추가했다. 기획 의도 : 코로나 장기화로 인해 온라인 시장 규모가 확대 / 건강한 가정식에 대한 관심도 증가 / 정보통신기술의 발달로 다양한 온라인 커뮤니티 활성화 🔨기술 스택 ⌛️작업 기간 ⭐️2021. 12. 20 ~ 2022. 03. 10 💡작업 목표물 메인(사용자) 페이지 로그인, 회원가입 상품 목록 출력, 마이페이지, 상품 상세 페이지 레시피 커뮤니티 관리자 페이지 회원 관리, 탈퇴 회원 관리 주문, 결제 관리 상품 CRUD 기능 💻Front-..

앞서 Travis CI를 활용하여 배포 자동화 환경까지 구축했지만 배포하는 동안 애플리케이션이 종료되는 문제는 해결되지 않음 => 어떻게 해야 서비스 중단 없이 배포를 계속할 수 있을까? 🤍무중단 배포란? 서비스를 정지하지 않고 배포할 수 있는 방법 AWS에서 블루 그린 무중단 배포 / 도커를 이용한 웹 서비스 무중단 배포 사용자는 서비스 주소로 접속 -> 엔진 엑스는 사용자의 요청을 받아 현재 연결된 스프링부트로 요청을 전달 -> 스프링부트2는 엔진엑스와 연결된 상태가 아니니 요청받지 못함. 배포하는 동안에도 서비스가 중단되지 않음! 🤍엔진엑스 설치와 스프링부트 연동하기 sudo yum install nginx //엔진엑스 설치 sudo service nginx start //엔진엑스 실행 리다이렉션 ..

🔍앞서 진행한 배포의 불편한 점 수동 실행되는 Test : 본인이 짠 코드를 확인하기 위해 전체 테스트를 수행해야만 함. 수동 Build : 다른 사람이 작성한 브랜치와 본인이 작성한 브랜치가 합쳐졌을 때(Merge) 이상이 없는지는 Build를 수행해야만 알 수 있고 이를 매번 개발자가 직접 실행해야 함. => 24시간, 365일 운영되는 서비스에서 배포 환경 구축은 필수 과제임. 🤍CI & CD 하나의 프로젝트를 여러 개발자가 함께 진행 시 각자 개발한 코드를 합치는 것이 번거로움. CI, CD : 지속해서 코드가 통합되는 환경을 구축하는 것. 깃허브에 푸시될 때마다 코드를 병합, 더는 수동으로 코드를 통합할 필요가 없어짐. 특히나 중요한 것은 테스팅 자동화. 🤍Travis CI 연동하기 Travix..

🤍스프링부트 프로젝트로 RDS 접근하기 책에서는 MariaDB를 사용 중이지만 나는 연결이 한 번에 안 되는 바람에 MySQL로 만들었다. MySQL에서 스프링부트 프로젝트 실행하려면 몇 가지 작업이 필요하다. 1. 테이블 생성, 2. 프로젝트 설정, EC2 설정 🤍RDS에 테이블 생성 1. 먼저 RDS에 테이블을 생성한다. JPA가 사용될 엔티티 테이블, 스프링 세션이 사용될 테이블 2가지를 생성해야 하는데 JPA가 사용할 테이블은 테스트 코드 수행 시 로그로 생성되는 쿼리를 복사해서 사용하면 된다. 2. 스프링 세션 테이블은 schema-mysql.sql 파일에서 가져오면 된다. 3. 테이블 생성 🤍프로젝트 설정 1. MySQL 드라이버를 build.gradle 에 등록한다. implementatio..