본문 바로가기

Backend - Java Spring97

[Spring 김영한] 기본예제 만들어보기 (서비스) 1. 서비스 만들기 - 디렉토리를 자주 만들어야하는 특성 상 나는 shift + command + P 를 사용해서 만들어야지! - /service/MemberService 를 만들어준다 - 참고 : command + option + V 누르면 알아서 리턴으로 바꿔준다 개꿀 - 위와같이 작성해준 후 이런 경우 method로 뽑아내는 것이 좋다 - 참고 : Command + Option + M 누르면 메서드 추출이 가능하다. - MemberService 전체를 다음과 같이 정리한다. 2. 회원 서비스 테스트 - 클래스에서 커맨드 + . 누르고 테스트 생성을 통해 편하게 생성할 수 있다. - 꿀팁 : 테스트케이스는 그냥 한글로 해도 상관 없다. 이거 좋네 - given - when - then 문법 사용하기 .. 2023. 11. 21.
[Spring 김영한] 기본예제 만들어보기 (리포지토리) 1. 비즈니스 요구사항 정리 - 데이터 : 회원ID, 이름 - 기능 : 회원 등록, 조회 - 가상의 시나리오 (DB 선정되지 않음) 2. 웹앱의 계층구조 - 컨트롤러 : 웹MVC의 컨트롤러 - 서비스 : 핵심 비즈니스 로직을 구현한 계층 - 리포지토리 : DB에 접근, 도메인 객체를 DB에 저장하고 관리 - 도메인 : 비즈니스 도메인 객체 3. 클래스의 의존관계 - MemberService : 서비스 구현 - MemberRepository : 인터페이스 - MemoryMemberRepository : 메모리모드로 메모리에 저장해서 DB를 대신하는 구현체 4. 회원 도메인과 리포지토리 만들기 - /domain/Member.class 에 멤버객체를 만들어줌 - /repository/MemberReposito.. 2023. 11. 21.
[JAVA얄코] 상속 1. Class의 상속 - 기본 예제 클래스 - 드라이브스루기능이 추가된 얄코치킨점을 내려면 ? - extends 키워드를 사용해 상속해서 사용한다. - 드라이브스루점 또한 홀 주문이 가능하다. 2. 메소드 Overriding - 부모와 자식 간의 메소드가 다름. - 자식에서 부모의 상속을 무시하고 새로 덮어씌운다. - @Override 어노테이션을 붙여놓는다. - super : 생성자 안에서 사용될 경우 부모의 생성자를 가리킨다. - super : 생성자 안에서 사용되지 않는 경우 부모 그 자체를 가리킨다. super.takeHallOrder() 처럼 사용이 가능하다. - super를 사용하는 경우 자식클래스의 생성자는 반드시 super로 시작해야한다. 2023. 11. 10.
[JAVA얄코] 접근 제어자 1. 접근 제어자 - 구성요소 중 일부만 밖으로 공개 - 캡슐화 encapsulation - 보안때문에만 감추는 것이 아님 - 중요한 것은 클래스 작성자의 의도와 인터페이스의 노출에 대한 설계이다. - 제한이 오히려 편리함을 제공하는 경우이다. (TypeScript같은거) 2. Getter 와 Setter 패턴 - 필드가 private이므로 getter와 setter를 통해 접근한다. - getter, setter 안에 유효성검사를 하기도 한다. - getter 에서 할인율을 적용한 값을 리턴하거나, name에 string을 추가하거나 하는 추가 작업도 간단하게 가능하다. - cmd + N 단축키를 이용해 편리하게 생성 가능하다. 2023. 11. 10.
[Spring 김영한] Spring 웹개발 기초 1. 정적 컨텐츠 (전통.html) - 'resources/static/' 에서 자동으로 제공한다. 2. MVC와 템플릿 엔진 (SSR) - MVC : Model View Controller - Controller : 내부적 로직처리 , @Controller 어노테이션이 들어간거. class 파일 - View : 렌더링만 하기 위함, Template 엔진 파일 (thyme 같은거) - HelloController 에 컨트롤러 추가해서 파라미터받아보기 - 이 패턴의 핵심은 html을 template 엔진으로 조작해서 조작된 html을 클라이언트에게 보내준다는 것 3. API (React/Vue) (CSR) - 쉽게 말해 데이터만 보내준다 - 실질적으로 제일 중요함 - HelloController에 추가해본.. 2023. 11. 10.
[Spring 김영한] Java Spring 시작하기 1. start.spring.io - spring 시작하게 해주는 사이트 - 꿀이니까 그냥 쓰자 - Gradle : 요새는 Gradle이 대세 - SpringBoot : 버전은 좋은걸로 - Group : 회사명 - Artifact : 프로젝트명 - Dependency : Spring Web, Thymeleaf(템플릿 엔진) - GENERATE해서 gradle파일 프로젝트로 오픈 2. 실행 - 실행 누르면 8080으로 톰캣으로 실행된다 - 8080은 젠킨스가 잡고있는데..? 그래서 바꿔보자 - application.properties 파일은 Node의 .env 파일이라고 이해하면 된다. - 이렇게 넣어주고 실행하면 9090 실행 완료! 3. View 환경설정 - `resources/static/index... 2023. 11. 10.
[SpringBoot3] Blog 기획하고 API 만들어보기 1. REST API - URL 설계 방식이다. - 동사를 쓰지 말고 자원을 표시해야 한다. - 동사는 HTTP 메서드로 한다. - Node/Express 하면서 지겹게 배웠던 내용이므로 나머지 생략 2. 엔티티 구성 컬럼명 자료형 null 허용 키 설명 id BIGINT N 기본키 일련번호, 기본키 title VARCHAR(255) N 게시물의 제목 content VARCHAR(255) N 내용 3. 단계별 작업 1) Domain의 Article class - Article class를 만든다 - Article.java - @Builder : 롬복에서 지원하는 애너테이션, 빌더 패턴 방식으로 객체를 생성할 수 있도록 한다. - 빌더패턴을 사용하지 않으면 new Article("abc","def") 이렇.. 2023. 10. 21.
[SpringBoot3] 데이터베이스 1. DBMS - 관리 시스템이다. - 이미 MySQL을 사용한 적이 있으므로 2. H2, MySQL - H2는 자바로 작성되어 있는 RDBMS이다. 스프링 부트가 지원하는 인메모리 관계형 DB이다. - H2는 데이터를 다른 공간에 따로 보관하는 것이 아니라 앱 자체 내부에 데이터를 저장하는 특징이 있다. - H2는 실제 서비스에서는 사용하지 않고, 개발 시 테스트용도로 많이 사용한다. - 실제 서비스로 올릴 때는 MySQL을 사용한다 3. ORM - Sequelize같은 거다. 자바에서는 JPA를 표준으로 사용한다. JPA는 ORM 인터페이스다.(자바 객체와 DB를 연결한다.) - 실제 사용을 위해서는 구현을 위해 ORM 프레임워크를 추가로 선택해야 한다. 여기서는 Hibernate를 사용한다. 4. .. 2023. 10. 20.