스프링 프레임워크의 구성 1. 스프링 부트(Spring Boot) : 스프링 애플리케이션을 복잡한 설명 없이 빠르게 작성하는 기능을 제공한다. 2. 스프링 프로젝트 1) 스프링 MVC : 웹 애플리케이션을 간단하게 생성하는 기능을 제공한다. 2) 스프링 데이터 : 데이터 접근에 관한 기능을 제공한다. 3) 스프링 배치(Spring Batch) : 배치 처리 기능을 제공한다. 4) 스프링 시큐리티(Spring Security) : 인증/허가 기능을 제공한다. 3. 스프링 코어 1) 스프링 DI : 의존성 주입(Dependency Injection) 기능을 제공한다. 2) 스프링 AOP : 관점 지향 프로그래밍(Aspect Oriented Programming) 기능을 제공한다. [스프링부트의 장점] * 웹..

클라이언트와 서버 * 클라이언트 - 서비스를 요청하는 쪽. * 서버 - 서비스를 제공하는 쪽 - 즉 서버가 서비스를 제공해 그 서비스를 클라이언트가 사용하는 관계 웹 서버 - 웹 서버는 항상 실행되며 클라이언트로부터 액세스(요청)을 항상 기다린다. HTTP 통신(프로토콜) - 클라이언트와 웹 서버는 HTTP 요청(request)과 응답(response) 로 상호작용한다. 1) 클라이언트가 브라우저에 URL을 입력한다. 2) 클라이언트에서 웹 서버로 HTTP 요청이 전송된다. 3) 웹 서버는 HTTP요청을 받아 HTTP 요청에 해당하는 HTTP응답을 클라이언트에게 반환한다. 4) 브라우저는 받은 응답을 표시하고 클라이언트가 이를 확인한다. GET 메서드와 POST 메서드 - 전자는 브라우저에서 웹 서버로 ..
Getter / Setter / 상속 개념설명 getter/setter 클래스에는 개인정보와 같이 민감하고 중요한 정보가 많이 있기 때문에 함부로 접근하고 값을 변경 하지 않도록 최소한의 허들을 두어야 하는데요. 지난시간에 배웠던 접근제어자 를 통해 해당 클래스의 접근 범위를 설정할 수 있었습니다. 일반적으로 멤버변수는 private로 설정이 되고, 해당 클래스의 인스턴스 생성시 값을 변경하거나 가져올때에는 클래스의 해당메서드를 통해서만 그 기능을 할 수 있도록 하고 있습니다. 따라서 접근제어자가 private 인 경우, 어떻게 다른 클래스에서 인스턴스를 생성하고 객체의 값을 넣고 가져오는지 getter/ setter 문법을 복습해 보도록 하는 시간입니다. // setter // 메서드 (public) ..
public class Practice { public static void main(String[] args) { boolean run = true; int studentNum = 0; int[] scores = null; Scanner sc = new Scanner(System.in); while (run) { System.out.println("--------------------------------------------------------"); System.out.println(" 1. 학생수 | 2. 점수입력 | 3. 점수리스트 |4. 분석 | 5. 종료"); System.out.println("------------------------------------------------------..

풀이 코드 public class quiz { public static void main(String[] args) { Random random = new Random(); // int num = (int) (Math.random() * 100); int num = random.nextInt(100)+1; // 100개의 숫자를 임의로 발생시킨다. Scanner scanner = new Scanner(System.in); int count = 0; // 총 횟수가 필요하므로 초기화 while (true) { // 숫자를 맞출때까지 프로그램을 무한반복한다. 그래서 while을 true로 적었다. System.out.println("숫자를 입력하세요."); // cpu가 생성한 Random숫자 콘솔에서 확인..

풀이 코드 public class quiz { public static void main(String[] args) { Random random = new Random(); int cpu = random.nextInt(3)+1; // System.out.println("CPU: " + cpu); Scanner sc = new Scanner(System.in); System.out.println("가위(1), 바위(2), 보(3): "); int user = sc.nextInt(); if(cpu == 1 && user == 2 || cpu ==2 && user ==3 || cpu ==3 && user ==1) { System.out.println("이겼습니다."); } else if (cpu == user..

풀이 public class Quiz { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[100]; System.out.println("숫자를 입력하세요: "); // 숫자를 100개까지 입력받는 부분 for (int i = 0; i = 0; i--) { if (arr[i] != 0) System.out.print(arr[i..