SOLID BASIC

    [백준] 1008번 A / B - JAVA

    [백준] 1008번 A / B - JAVA

    1. Scanner 이용 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=new Scanner(System.in); double a=in.nextDouble(); double b=in.nextDouble(); in.close(); System.out.print(a/b); } } 가장 기초적인 입력방법 그리고 문제에 나와있듯이 오차 범위를 벗어나지 않게 하기 위해서는 반드시 double형으로 출력을 해주어야 한다. 2. BufferedReader 을 쓰는 방식 readLine() 을 통해 입력 받아 연산하는 방법 두 가지를 설명할 것이다. 앞서 말했듯이 readLine() 은 한 ..

    [백준] 10998번 A X B 출력하기 - JAVA

    [백준] 10998번 A X B 출력하기 - JAVA

    1. Scanner 이용하기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); System.out.println(A*B); in.close(); } } 2. BufferedReader 을 쓰는 방식이다. readLine() 을 통해 입력받아 연산하는 방법 두 가지를 설명할 것이다. 앞서 말했듯이 readLine() 은 한 행을 전부 읽기 때문에 공백 단위로 입력해 준 문자열을 공백 단위로 분리해주어야 문제를 풀 수 있을 것이다. 문자열 분리 방법 두 가지로 ..

    [백준1001번] A - B 출력하기 - JAVA

    1. Scanner 이용하기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); System.out.println(A-B); in.close(); } } 2.BufferedReader readLine() 을 통해 입력 받아 연산하는 방법 두 가지를 설명할 것이다. readLine() 은 한 행을 전부 읽기 때문에 공백단위로 입력해 준 문자열을 공백단위로 분리해주어야 문제를 풀 수 있을 것이다. 문자열 분리 방법 두 가지로 풀어보자. StringTokenizer..

    [백준] 1000번 A + B 출력하기 - JAVA

    [백준] 1000번 A + B 출력하기 - JAVA

    2가지 입력방법 이용 출력에서 System 클래스 ( System.out.println() ) ,BufferedReader , StringBuilder, StringBuffer 을 이용해왔다. 이와 반대로 입력 방법 또한 여러가지가 있다. - 방법 1 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int A = in.nextInt(); int B = in.nextInt(); System.out.println(A+B); in.close(); } } 가장 기초적인 입력방법이다. import java.util.Scanner; public..

    [백준] 2557번 Hello World 출력하기 - JAVA

    오늘부터는 꾸준하게 백준 문제를 풀고 기록을 할 것이다. 미루고 미뤄왔지만 더이상 미룰 수는 없다고 생각함 ㅇㅇ... 나 이제 3학년 1학니기니까... ㅋ 코테도 제대로 못 푸는 전공자가 되지 말자 - 방법 1 ( System 클래스 - 표준 입출력 ) public class Main { public static void main(String[] args) { System.out.print("Hello World!"); // System.out.println("Hello World!"); - 2번 // System.out.printf("Hello World!"); - 3번 // System.out.printf("%s","Hello World!"); - 4번 } } *****백준 알고리즘에서는 클래스명을 ..

    [SPRING] 스프링 컨테이너에 등록된 빈을 조회해보자! | Bean 조회 및 출력하기

    [SPRING] 스프링 컨테이너에 등록된 빈을 조회해보자! | Bean 조회 및 출력하기

    스프링 빈 출력 모든 빈 출력하기 실행하면 스프링에 등록된 모든 빈 정보를 출력할 수 있다. ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름을 조회한다. -> 28번 라인 ac.getBean(빈이름, 타입) or ac.getBean(타입) : 빈 이름으로 빈 객체(인스턴스)를 조회한다. -> 35번 라인 애플리케이션 빈 출력하기 스프링이 내부에서 사용하는 빈은 제외하고, 내가 등록한 빈만 출력해보자. 스프링이 내부에서 사용하는 빈은 getRole()로 구분할 수 있다. -> 34번 라인 ROLE_APPLICATION : 일반적으로 사용자가 정의한 빈 ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈 스프링 빈 조회 - 기본적인 조회방법 ac.getB..

    [Spring] 스프링 컨테이너 생성과정

    스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아보자. //스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다. 직전에 AppConfig 를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다. 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어보자. new Ann..

    [Spring] 스프링 컨테이너 ApplicationContext

    스프링 컨테이너 ApplicationContext 스프링 컨테이너 ApplicationContext 를 스프링 컨테이너라 한다. 기존에는 개발자가 AppConfig 를 사용해서 직접 객체를 생성하고 DI를 했지만, 이제부터는 스프링 컨테이너를 통해서 사용한다. 스프링 컨테이너는 @Configuration 이 붙은 AppConfig 를 설정(구성) 정보로 사용한다. 여기서 @Bean 이라 적힌 메서드를 모두 호출해서 반환된 객체를 스프링 컨테이너에 등록한다. 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라 한다. 스프링 빈은 @Bean 이 붙은 메서드의 명을 스프링 빈의 이름으로 사용한다. ( memberService , orderService ) 이전에는 개발자가 필요한 객체를 AppConfig 를..

    [Spring] IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control)

    [Spring] IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control)

    **영한님의 스프링 기본 강의를 수강하며 정리하는 글 IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 OrderServiceImpl 은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 Or..

    [JAVA] Assertions.assertThat 비교 하기

    만약에 service에서 두 객체나 변수 등을 비교 하기 위해서는 다양한 방법이 있지만 결국 확인을 하기 위해서는 System.out.println 으로 보게 될것이다. 일반 코드도 그렇고 테스트 코드에서도 이렇게 작성을 한다면 직접 콘솔을 뒤져가면서 눈으로 확인을 해야한다. 이럴 경우에 비교를 하는 대상을 테스트 코드에 한줄만 추가해두면 된다. Assertions.assertThat("A").isEqualTo("Ad"); 이렇게 해두면 테스트 코드를 돌릴때 두개의 변수 혹은 객체 등 같으면 정상 success가 뜨고 다르다면 빨간색으로 fail이 날것이다. 위에 예제는 A랑 Ad는 다르니 fail이 뜨는 Test코드가 된다.