Purple Bobblehead Bunny

분류 전체보기 113

[SpringBoot] 게시판 만들기 2. 게시글 작성

우선, html 코드를 작성한다. 백엔드 중점으로 공부를 하는 게시물이기 때문에, html은 간단하게 구현만 한다. 게시물 작성 작성 DB에 값을 넣기 위해 form 태그를 쓰고, textarea, input의 name을 테이블 컬럼 명과 동일하게, button type을 submit으로 지정 BoardController에서 boardwrite.html로 이동을 하기 위한 메서드를 작성한다. /localhost:8080/board/write 주소를 입력하게 되면, boardwrite.html으로 이동을 하게 된다. Entity class를 작성한다. Entity 클래스는 실제 DB 테이블과 매핑되는 핵심 클래스로, DB의 테이블에 존재하는 컬럼들을 필드로 가지는 객체다. id, title, content..

Backend/SPRINGBOOT 2022.10.31

[SpringBoot] 게시판 만들기 1. 프로젝트 생성

인텔리제이 사용 start.spring.io 접속 후 Gradle을 사용 하고, 자바 버전을 8 버전을 사용 한다. Thymeleaf 템플릿 엔진을 사용하고, 생산성 향상을 위해 JPA, Lombok 사용, DB는 MySQL을 사용한다. 압축 파일을 만든 뒤 자신이 사용하고자 하는 workspace 폴더에 넣은 후 인텔리제이 Open Folder로 프로젝트를 불러온다. File -> Setting 으로 들어간 후 IntelliJ IDEA로 설정 값을 바꿔준다. application.properties를 application.yml로 변경을 해 준 뒤, DB 값을 설정을 해 준다. spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: j..

Backend/SPRINGBOOT 2022.10.31

LookPlace

한 동안 게시글을 쓰지 못했다. 학원 수료 시점, 몇 가지 일이 있었고.. 팀 프로젝트, 서울 올라갈 때 정착 할 집 찾기.. 자소서 블로그를 오랜만에 쓰다보니 굉장히 낯설다. 스프링 프레임워크 팀 프로젝트를 진행 했고, 마무리가 되었다. 여행자들을 위한 웹사이트로, 지역별로 추천 여행지를 알려주고, 게시판을 통해 유저들끼리 커뮤니케이션을 하며 정보를 공유한다. 개발인원은 총 3명, 3주 동안 진행했다. 금방 끝내고 싶은 마음은 굴뚝 같았는데, 스프링 프레임워크는 수업 과정에 없다보니, 다들 독학을 하고, 어느정도 익숙해 진 뒤에 진행을 했다. 내가 맡은 기능은, member 쪽으로 회원가입, 로그인, 로그아웃, 회원탈퇴, 마이페이지 수정, 아이디, 비밀번호 찾기를 진행했다. 메인 화면 로그인 화면 회원..

Project 2022.10.12

[Spring]MyBatis

🚀 Mybatis는 자바 오브젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM(Object relational Mapping) 프레임워크 이다. 기존 JDBC만을 이용한 방식은 프로그램 소스 안에서 직접 connection을 맺고 SQL문을 처리하고 rs.next() 등을 이용하여 하나씩 받아와야 해 코드가 길어지고, SQL의 변경이 필요한 경우에도 java 프로그램을 수정하기 때문에 유연성이 좋지 못하다. MyBatis에서는 상당부분의 코드와 파라미터 설정 및 ResultSet 결과를 대신해주어 코딩의 중복과 무의미한 코드 작성을 생략할 수 있으면서, SQL문을 xml 파일에 작성하여 변환이 자유롭고 가독성이 좋다. 간단한 persistence framework. 배우기 쉽다. 코드가 줄어들고, ..

Backend/SPRING 2022.08.01

[Spring] Connection Pool

🚀 커넥션 풀(DBCP) 웹 컨테이너가 실행되면서 DB와 미리 connection(연결)을 해놓은 객체들을 pool에 저장해두었다가 객체들을 pool에 저장해두었다가 클라이언트 요청이 오면 connection을 빌려주고, 처리가 끝나면 다시 connection을 반납받아 pool에 저장하는 방식이다. 자바에서 DB에 직접 연결을 해서 처리하는 경우 드라이버를 로드하고 커넥션 객체를 받아와야 하는데, 사용자가 요청을 할 때 마다 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 비효율적이다. 이런 문제를 해결하기 위해서 Connection Pool(DBCP)를 사용한다. DBCP(DataBase Connection Pool) : DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 한다 🚀 ..

Backend/SPRING 2022.08.01

[Spring] Logj4

🚀 Logj4 Java 환경의 로깅 시스템을 제공하는 라이브러리 Logger, Appender, Layout 등 다양한 컴포넌트가 사용되며, 로그 레벨을 분류하여 로그 정보를 출력 시킨다. Component 종류 컴포넌트 설명 Logger 로그의 주체, 로그 파일을 작성하는 클래스 Appender 로그를 출력하는 위치 Layout Appender의 촐력포맷(일자, 시간 등)을 설정하여 로그 내용으로 지정하는 속성 로그 레벨 로그는 기본적으로 6개의 레벨을 갖는다. 아래로 갈수록 낮은 레벨 로그 레벨 설명 fatal 시스템 문제와 같은 아주 심각한 에러가 발생한 상태를 나타냄 error 요청을 처리하는 중 문제가 발생한 상태를 나타냄 warn 처리 가능한 문제지만, 향 후 시스템 에러의 원인이 될 수 있는..

Backend/SPRING 2022.08.01

[Spring] Lombok

🚀 Lombok 보통 JAVA에서는 많은 멤버변수가 있고, Getter, Setter, toString 등 직접 코드를 입력해줘야 하는데, Lombok은 VO/DTO/Domain 객체에 필요한 Getter Setter, toString 메서드, 생성자 등을 자동으로 생성을 해 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다. Lombok은 여러가지 어노테이션을 제공하고, 이를 기반으로 반복 소스코드를 컴파일 과정에서 생성해주는 방식으로 동작하는 라이브러리이다. 🚀 어노테이션 1. @Getter / @Setter 특정 필드 위에서 어노테이션을 붙여주면, 자동으로 생성된 접근자와 설정자 메서드를 사용할 수 있다. 클래스 위에 붙여주는 경우에는 모든 필드에 접근자와 설정자가 자동으로 생성된다 @..

Backend/SPRING 2022.07.29

[JSP] webapp, WEB-INF

webapp 폴더 안의 welcome.jsp와 webapp폴더의 하위 폴더인 WEB-INF 폴더 안에 Login.jsp가 있다. webapp안의 welcome.jsp 실행 WEB-INF 폴더 안의 Login.jsp 실행 다음과 같이 webapp의 welcome.jsp는 실행이 되지만, WEB-INF의 Login.jsp는 접근이 되지 않는다. webapp폴더에 파일이 있을 경우 로직 없이도 가상의 결과물을 만들어 직접적으로 살펴볼 수가 있다. 반대로 WEB-INF 폴더의 경우에는 브라우저에서 직접적으로 접근이 불가하다. 이렇게 서로의 장단점을 유추할 수 있다. webapp 장점 jsp파일을 바로 접근할 수 있다. 앞에서 확인한 결과 jsp 파일의 경과를 바로 볼 수 있다. 단점 webapp폴더로 작성을 완..

Backend/JSP SERVLET 2022.07.27

[Spring] 스프링 프레임워크, Spring FrameWork

🚀 Spring 흔히 spring이라고 부르지만 정확한 명칭은 스프링 프레임워크(Spring Framework)이 정확한 표현이다. 자바(JAVA) 플랫폼을 위한 오픈 소스(Open Source) 어플리케이션 프레임워크(FrameWork) 자바 개발을 편리하게 해주는 오픈 소스 어플리케이션 프레임워크 자바 개발을 위한 프레임워크로 종속 객체 생성, 조립해주는 도구 자바로 된 프레임워크로 자바 SE로 된 자바 객체(POJO)를 자바 EE에 의존적이지 않게 연결해주는 역할 🚀 스프링 특징 1) 경량 컨테이너로서 자바 객체를 직접 관리 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. 2) 스프링은 POJO(Plain Old Java Object) 방식의 ..

Backend/SPRING 2022.07.11