자바(8)
-
회원 관리 예제 - 웹 MVC 개발
회원 웹 기능 - 홈 화면 추가홈 컨트롤러 추가회원 관리용 홈참고: 컨트롤러가 정적 파일보다 우선순위가 높다.회원 웹 기능 - 등록회원 등록 폼 개발 회원 등록 폼 컨트롤러회원 등록 폼 HTML ( `resources/templates/members/createMemberForm` )회원 등록 컨트롤러웹 등록 화면에서 데이터를 전달 받을 폼 객체@Getmapping, @Postmapping회원 웹 기능 - 조회 회원 컨트롤러에서 조회 기능회원 리스트 HTML퀴즈요청 처리 시 스프링 MVC는 컨트롤러 매핑과 정적 자원 중 무엇을 먼저 찾을까요?스프링 MVC는 특정 경로에 대해 먼저 컨트롤러 매핑을 찾고, 없으면 정적 자원을 찾습니다. 이를 통해 웹 기능을 우선 처리할 수 있습니다.회원 가입처럼 서버 상태..
2025.09.22 -
스프링 빈과 의존관계
컴포넌트 스캔과 자동 의존관계 설정회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비하자.memberService가 스프링 빈으로 등록되어 있지 않다.스프링 빈을 등록하는 2가지 방법컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록하기컴포넌트 스캔 원리 `@Component` 애노테이션이 있으면 스프링 빈으로 자동 등록된다. `@Controller` 컨트롤러가 스프링 빈으로 자동 등록된 이유도 컴포넌트 스캔 때문이다. `@Component` 를 포함하는 다음 애노테이션도 스프링 빈으로 자동 등록된다. `@Controller` `@Service` `@Repository` `memberService` 와 `memberRepository` 가 스프링 컨테이너에 스..
2025.09.20 -
회원 관리 예제 - 백엔드 개발
비즈니스 요구사항 정리데이터: 회원ID, 이름기능: 회원 등록, 조회아직 데이터 저장소가 선정되지 않음(가상의 시나리오)일반적인 웹 어플리케이션 계층 구조컨트롤러: 웹 MVC의 컨트롤러 역할서비스: 핵심 비즈니스 로직 구현리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨클래스 의존관계아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용회원 도메인과 리포지토리 만들기회원 리포지토리 ..
2025.09.19 -
메서드
값만 다른 같은 구조의 코드를 여러번 사용해야 된다면 매세드를 사용하여 리팩토링해보자.자바에서는 함수를 메서드(Method)라고 한다. 메서드 정의public static int add(int a, int b) { System.out.println(a + "+" + b + " 연산 수행"); int sum = a + b; return sum;} 메서드의 선언 부분으로, 메서드 이름, 반환 타입, 매개변수(파라미터) 목록을 포함한다.public static`public` : 다른 클래스에서 호출할 수 있는 메서드라는 뜻이다. 접근 제어에서 학습한다.`static` : 객체를 생성하지 않고 호출할 수 있는 정적 메서드라는 뜻이다. 자세한 내용은 뒤에서 다룬다.두 키워드의 자세한 내용은 뒤에서 다룬다. 지금은..
2025.09.16 -
배열
배열의 선언과 생성int[] students; //1. 배열 변수 선언students = new int[5]; //2. 배열 생성배열을 사용하려면 `int[] students;` 와 같이 배열 변수를 선언해야 한다.일반적인 변수와 차이점은 `int[]` 처럼 타입 다음에 대괄호( `[]` )가 들어간다는 점이다.배열 변수를 선언한다고해서 아직 사용할 수 있는 배열이 만들어진 것은 아니다!`int a` 에는 정수를, `double b` 에는 실수를 담을 수 있다.`int[] students` 와 같은 배열 변수에는 배열을 담을 수 있다. (배열 변수에는 10, 20 같은 값이 아니라 배열이라는 것을 담을 수 있다)배열을 사용하려면 배열을 생성해야 한다.`new int[5]` 라고 입력하면 오른쪽 그림과 같..
2025.09.15 -
Scanner 학습
Scanner`System.out` 을 통해서 출력을 했듯이, `System.in` 을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 `System.in` 을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.자바는 이런 문제를 해결하기 위해 `Scanner` 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.Scanner scanner = new Scanner(System.in);`이 코드는 객체와 클래스를 배워야 정확히 이해할 수 있다. 지금은 `Scanner` 의 기능을 사용하기 위해 `new` 를 사용해서 `Scanner` 를 만든다 정도로 이해하면 된다. `Scanner` 는 `System.in` 을 사용해서 사용자의 입..
2025.09.15