목록Spring (15)
철학과 학생의 개발자 도전기
후기 스프링 입문 섹션7, 8은 간단한 마무리 내용이라 블로그 포스팅은 생략한다. 강의를 완강하고 나니까 스프링 프로젝트에 대한 커다란 흐름정도는 잡히는 것 같다. 하지만 강의자님도 매번 말씀하셨듯이 큰 줄기를 잡는 것이 목표이다보니까 세부적인 내용들에 대한 이해는 아직 부족하다. 이제 다음 스터디를 진행하면서 세부적인 내용들을 다시 채워나가야 될 것 같다. 다음 스터디는 이 책으로 진행한다. 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - YES24 가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스..

H2 데이터베이스 설치 실습을 위해 1.4.2 버전의 H2 데이터베이스를 설치한다. 그 후 실행시키면 다음처럼 창이 나온다. 연결을 누르면 test.mv.db파일이 생성되고 아래와 같은 화면이 나온다. 한번 연결한 이후에는 URL을 아래처럼 바꿔서 연결하면 된다. 웹 애플리케이션과 충돌이 안 생기도록 하는 것이라는데 정확한 원리는 필요할 때 찾아보려고 한다. 이제 DB에 member 테이블을 만들어보자. 다음 코드를 입력하고 실행을 누르면 왼쪽 목록에 MEMBER 테이블이 생긴 것을 볼 수 있다. 순수JDBC 과거의 유산인 JDBC를 이용해서 DB에 연결하는 실습을 해 볼 것이다. 현재는 전혀 사용하지 않는 방식이니 가볍게 들으려고 한다. 우선 필요한 설정부터 해준다. 그리고 JdbcMemberRepos..

홈 화면 추가 홈 화면을 추가하기 위해 HomeController와 home.html을 만들었다. 기존에 있던 index.html은 컨트롤러를 모두 탐색한 후에도 홈 화면이 없으면 띄우기 때문에 우선순위가 밀리게 된다. 이제 main파일을 실행시켜서 서버를 돌려보자! 그러면 다음과 같이 홈 화면이 잘 출력되는 것을 볼 수 있다. 등록 이제 회원 등록 기능을 웹에서 수행할 수 있도록 만들 것이다. MemberController에 createForm 클래스를 만든다. 그리고 해당하는 html파일을 불러오도록 설정한다. 실행시키면 다음과 같은 화면이 나온다. 이제 이름을 입력한 후 등록을 누르면 실제로 회원 등록이 되도록 만들 것이다. MemberForm 클래스를 새로 만들고 기존에 만든 MemberContr..

컴포넌트 스캔과 자동의존관계 설정 컨트롤러가 서비스를 new로 생성하게 되면 불필요하게 중복되는 객체들이 생기게 된다. 하나의 객체만 생성하고 여러 컨트롤러가 공유하면서 사용하기 위해 DI(의존성 주입)을 사용한다. 이렇게 스프링 컨테이너에서 관리하는 객체는 스프링 빈이라고 불린다. 스프링 빈은 기본적으로 싱글톤으로 하나의 객체를 공유하는 방식으로 사용된다. 우선 이전에 만든 서비스와 리포지토리는 순수한 자바 코드이기 때문에 스프링이 인식할 수 없다. 그래서 @Service와 @Repository를 사용해 스프링에게 알려준다. 그리고 MeberController에 @Autowired를 사용해 연결시켜주면 된다. 이렇게 @를 활용해 의존관계를 만드는 것을 컴포넌트 스캔이라고 한다. 자바 코드로 직접 스프링..

비즈니스 요구사항 정리 이번 예제는 스프링부트에 대한 이해를 돕기 위한 것이므로 요구사항은 최소한으로 정했다. - 데이터: 회원ID, 이름 - 기능: 회원 등록, 조회 - DB: 미정 웹 애플리케이션 구조는 다음 이미지를 따른다. 도메인은 비즈니스에서 사용되는 객체를 의미하고, 리포지토리는 이러한 객체를 DB에 저장 및 관리하는 역할을 한다. 회원 도메인과 리포지토리 만들기 이제 직접 코드를 작성하여 도메인과 리포지토리를 만들 것이다. hellospring폴더에 domain패키지를 만들고 Member클래스를 정의한다. 데이터는 간단히 id와 name 두가지뿐이다. 이 둘은 private 변수이기 때문에 getter, setter를 이용해서 접근해야한다. 그 다음은 리포지토리 인터페이스를 작성했다. hel..

정적 컨텐츠 스프링부트는 정적 컨텐츠 기능을 자동으로 제공한다. 강의에서는 2.3버전의 문서를 찾아봤지만 나는 2.7.4버전을 사용하므로 거기에 맞춰서 문서를 찾아보았다. https://docs.spring.io/spring-boot/docs/2.7.4/reference/html/web.html#web.servlet.spring-mvc.static-content Web Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and servlet-based web applications. It occurs as part of..

스터디 시작 한양대학교 GDSC 2기로 활동하게 되었다. 나는 백엔드 팀에 들어가서 Java Spring 스터디를 시작했다. 격주로 대면 스터디를 진행하며 정해진 분량의 강의를 듣고 각자 내용 정리를 해서 발표하면 된다. 발표자는 당일에 랜덤하게 뽑는다고 한다. 미리 발표자를 정하는 방식이 아니라 더 긴장하면서 열심히 준비할 수 있을 것 같다. 강의는 인프런에서 김영한님의 스프링 입문을 듣기로 했다. 강의가 딱딱하지 않고 속도감있어서 듣기 좋다. 무료로 좋은 강의를 찍어주셔서 감사하다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B..