728x90
반응형

백엔드 5

[스프링 부트3 백엔드 개발자 되기] 후기, 스프링 부트 교재

결론부터 말하면, 10점 만점에 4점이다. 스프링 부트를 시작할 다른 사람에게 굳이 추천하고 싶지는 않은 책이다. 책을 끝까지 완독 후 후기를 작성하려 했으나 다른 일정과 겹쳐서 마지막 Git 버전관리와 AWS 배포 부분은 읽지 못했다. 그러나 시간이 나더라도 굳이 다시 펼쳐서 끝까지 읽고 싶지는 않은 마음이고... 완독하지 못했더라도 가장 중요한 웹사이트는 끝까지 만들어 보았으니 짧은 후기를 쓸 정도는 된다고 생각한다. 독자의 수준이나 기초지식에 따라서 책에 대한 견해가 달라질 수 있으니 나를 설명하겠다. - 정보보안 전공, 보안과 관련된 지식과 네트워크, 서버, 웹 등 기초 CS지식정도 보유. - JAVA, Python 기초문법 숙지한 상태. - "개발"을 해본적은 한번도 없다. 개발 공부는 이 책이..

독서/IT 2024.01.15

스프링 입문 - 회원 서비스 테스트

회원 서비스 개발에 이어, 개발한 회원 서비스를 테스트할 차례다. 테스트를 수행할 MemberService에서, Ctrl + Shift + T를 누르고, Create New Test를 누른다. 그러면 이런 창이 뜬다. 테스트 클래스 이름도 본래 클래스 이름에 Test만 붙여서 자동으로 작성해 준다. 내가 테스트하고 싶은 메소드를 아래에서 체크해서 OK를 누른다. 그러면 이렇게 테스트에 필요한 틀을, 적절한 위치(경로)에 아주 쉽게 만들어준다. 일단 만들어진 테스트가 문제가 없는지, 현재 상태에서 바로 한번 돌려본다. 다행히 문제는 없다. 본격적으로 테스트 케이스를 작성해 보기 전에, 잠깐 MemberService로 가보자. 기존 코드를 변경해서, 이렇게 생성자를 통해 외부에서 리포지토리를 주입받도록 변경..

Development/Spring 2023.11.07

스프링 입문 - 회원 서비스 개발

도메인, 리포지토리를 만들었으니 서비스를 만들 차례이다. hello.hellospring.service 패키지를 만들고, service 패키지 아래에 MemberService 클래스를 만들자. 서비스는 리포지토리와 함께 동작해야 하니, 미리 만들어두었던 리포지토리 객체를 만들어 주자. 회원가입 메소드인 join이다. member 객체를 매개변수로 받아서 리포지토리에 저장하고, 저장한 객체의 Id를 리턴한다. 단, 중복된 name을 가진 회원은 가입할 수 없도록 검증하는 과정이 있다. 바로 밑에 선언해둔 validateDuplicateMember가 중복을 검사하는 메소드이다. name을 기준으로 리포지토리에서 회원을 찾아서, 해당 회원이 이미 존재한다면 "이미 존재하는 회원입니다" 예외를 출력하고 메소드는..

Development/Spring 2023.11.07

스프링 입문 - 회원 리포지토리 테스트 케이스 작성

개발한 코드가 잘 동작하는지 확인하기 위해서는, 테스트 케이스를 작성하여 확인해야 한다. 자바는 JUnit 이라는 프레임워크를 제공하여, 테스트를 효율적으로 실시할 수 있게 해준다. 우선 테스트 케이스를 작성할 패키지를 만들어 주자. 주의해야 할 점은, 앞서 코드를 작성했던 "Main" 디렉터리 밑이 아닌 그 아래에 있는 "test" 디렉터리 아래에 만들어야 한다는 점이다. test 디렉터리 밑에서, hello.hellospring.repository 패키지를 만들어 주자. repository 패키지 아래에 MemoryMemberRepositoryTest 클래스를 만들어 주자. 우리는 MemoryMemberRepository를 테스트할 것이기 때문에, 뒤에 Test만 붙여서 생성하는 것이다. 테스트 클래..

Development/Spring 2023.11.01

스프링 입문 - 회원 도메인과 리포지토리 만들기

우선, 도메인을 구현할 패키지인 hello.hellospring.domain 패키지를 만들자. domain 패키지 하위에, Member 클래스를 만들자. 그리고 위와 같이 도메인 역할을 할 Member 클래스를 작성해 주자. 비즈니스 요구사항에서, 데이터는 회원ID, 이름 2가지였다. 그 역할을 해줄 id, name 필드를 선언하고 getter setter를 작성한 것이다. 다음은 repository 패키지를 만들어 주자. repository 패키지 하위에, MemberRepository "인터페이스"를 만들자. 위와 같이 인터페이스를 작성해주자. 여기서 구현을 할 수는 없고, 추상 메소드 4개를 선언했다. 이것은 MemoryMemberRepository라는 구현 클래스에서 구현할 것이다. reposit..

Development/Spring 2023.10.29
728x90
반응형