JAVA
-
이것이 자바다 | 13장 제네릭JAVA/이것이 자바다 2022. 8. 3. 18:08
📍제네릭을 사용해야 하는 이유 📎컴파일 시 강한 타입 체크를 할 수 있음 📎타입 변환(casting)을 제거함 📍제네릭 타입 (class, interface) 📎모든 종류의 객체를 저장(Object)하면서 타입 변환이 발생하지 않도록 하는 방법 => 제네릭 Box box = new Box(); // Box 클래스 내부 public class Box { private String t; public void set(String t) { this.t = t; } public String get() { return t; } } 📍멀티 타입 파라미터 (class, interface) 📎제네릭 타입은 두 개 이상의 멀티 파라미터 사용이 가능함 Product product1 = new Product(); // new..
-
이것이 자바다 | 12장 멀티 스레드JAVA/이것이 자바다 2022. 7. 23. 14:24
12.1 멀티 스레드 개념 멀티 프로세스: 서로 독립적 -> 오류가 발생해도 다른 프로세스에 영향 X 멀티 스레드: 하나의 프로세스 내부에 생성 -> 하나의 스레드에 예외 발생 -> 프로세스 자체 종료될 수도 있음 1. 메인 스레드 메인 스레드는 필요에 따라 작업 스레드들을 만들어서 병렬로 코드 실행 가능 12.2 작업 스레드 생성과 실행 작업 스레드들이 객체로 생성되기 때문에 클래스 필요 java.lang.Thread 클래스를 직접 객체화 Thread를 상속해서 하위 클래스 생성 1. Thread 클래스로부터 직접 생성 :java.lang.Thread 클래스로부터 작업 스레드 객체를 직접 생성 Runnable 을 매개값으로 갖는 생성자를 호출 Runnable의 run() 메소드 재정의 Runnable ..
-
이것이 자바다 | 11장 기본 API 클래스 (3)JAVA/이것이 자바다 2022. 7. 21. 14:39
2. Random 클래스 Math.random() 메소드는 0.0에서 1사이의 double 난수를 얻을 수 있음 Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있음 + 종자값을 설정할 수 있음 (종자값이 같으면 같은 난수를 얻음) Random 클래스가 제공하는 메소드 next자료형() => 해당 자료형 타입의 난수를 리턴 * nextInt(int n) : int 타입의 난수를 리턴(0
-
인프런 | 스프링 입문 - 회원 웹 기능JAVA/스프링 입문 2022. 7. 19. 23:56
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 (inflearn.com) 회원 관리 예제 - 웹 MVC 개발 회원 웹 기능 - 홈 화면 추가 회원 웹 기능 - 등록 회원 웹 기능 - 조회 회원 웹 기능 - 홈 화면 추가 "홈 컨트롤러 추가" package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HomeController { @GetMapping("/") public String home() { ret..
-
인프런 | 스프링 입문 - 컴포넌트 스캔과 자동 의존관계 설정JAVA/스프링 입문 2022. 7. 19. 14:13
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 (inflearn.com) 스프링 빈과 의존관계 스프링 빈을 등록하고, 의존관계 설정하기 회원 컨트롤러가 회원서비스와 회원 리포지토리를 사용할 수 있게 의존관계를 준비 "MemberController.java" package hello.hellospring.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import hello.hellospring.service.MemberService; @Controller public class..
-
인프런 | 스프링 입문 - 비즈니스 요구사항 정리JAVA/스프링 입문 2022. 7. 17. 14:44
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 (inflearn.com) 회원 관리 예제 - 백엔드 개발 비즈니스 요구사항 정리 회원 도메인과 리포지토리 만들기 회원 리포지토리 테스트 케이스 작성 회원 서비스 개발 회원 서비스 테스트 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로..
-
인프런 | 스프링 입문 - 스프링 웹 개발 기초JAVA/스프링 입문 2022. 7. 16. 03:21
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 (inflearn.com) 스프링 웹 개발 기초 정적 컨텐츠 MVC와 템플릿 엔진 API 정적 컨텐츠 스프링 부트 정적 컨텐츠 기능 파일을 그대로 내려줌 http://localhost:8080/hello-static.html 정적 컨텐츠 입니다. MVC와 템플릿 엔진 MVC: Model, View, Controller 템플릿 엔진을 Model, View, Controller로 쪼개서 View를 랜더링해서 전달 https://localhost:8080/hello-mvc?name=spring API `@ResponseBody 문자 변환` @ResonseBody: http의 body부에 해당 데이터를 직접 넣..
-
이것이 자바다 | 11장 기본 API 클래스 (2)JAVA/이것이 자바다 2022. 7. 15. 17:45
11.6 Class 클래스 자바는 클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리함 *메타데이터: 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보 1. Class 객체 얻기(getClass(), forName()) Class 객체를 얻기 위해서는 Object 클래스의 getClass() 메소드이용 Class clazz = obj.getClass(); Class생성자를 감추고 있기 때문에 new연산자로 만들 수 없음 -> forName() 이용 (정적 메소드) try { Class clazz = Class.forName(String className); } catch (ClassNotFoundException e) { } 2. 리플렉션(getDeclar..