728x90
반응형

JAVA 261

[SPRING] @Controller와 @RestController

@RestController는 @Controller + @ResponseBody 의 기능을 한다. @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 반환, 클래스를 Spring MVC컨트롤러로 표시하는데 사용된다. @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON또는 XML 형식으로 HTTP응답에 담아서 전송 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 모든 메서드가 뷰 대신 객체로 작성된다.

JAVA/SPRING 2022.03.29

좋은 객체 지향 설계의 5가지 원칙 ( SOLID )

💜 SRP ( Single Responsibility Principle ) - 단일 책임 원칙 🧡 OCP ( Open / Closed Principle ) - 개방 - 폐쇄 원칙 💛 LSP ( Liskov Substitution Principle ) - 리스코프 치환 원칙 💚 ISP ( Interface Segregation Principle ) - 인터페이스 분리 원칙 💙 DIP ( Dependency Inversion Principle ) - 의존관계 역전 원칙 💜 SRP ( Single Responsibility Principle ) - 단일 책임 원칙 ➖ 한 클래스는 하나의 책임만 가져야 한다. 🧡 OCP ( Open / Closed Principle ) - 개방 - 폐쇄 원칙 ➖ 소프트웨어 요소..

JAVA 2022.03.06

[JAVA] beak문, continue문, label문

break문 - break문은 반복문을 빠져 나오게 하고 반복문 내의 어떤 곳이든 위치 할 수 있다. - break문은 반복문을 한번에 하나만 빠져 나올 수 있다. ex ) int a=1; while(true){ while(true){ System.out.println("무한 반복"); if(a>=4) break; // a가 4이상이 되면 반복 문을 빠져나가게 한다. a++; // a가 1부터 시작하여 4미만이면 1씩 증가된다. } System.out.println("a가 4이상이 되면 이곳으로 빠져나온다."); break; //반복 문을 빠져 나온다. } continue문 - 반복문을 빠져 나가지 않고 반복문의 조건부로 실행위치를 옮긴다. - continue이후에 실행문들은 실행이 되지 않는다. ex)..

JAVA 2022.03.05

내부 클래스 ( inner class )

내부 클래스란? - 클래스 안의 클래스 내부 클래스의 장점 - 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근 할 수 있다. - 코드의 복잡성을 줄일 수 있다. ( 캡슐화 ) 내부 클래스의 제어자와 접근성 - 내부 클래스의 제어자는 변수에 사용 가능한 제어자와 동일하게 public/ (default)/ protected / private 다 사용가능. - static클래스만 static멤버를 정의 할 수 있다. ( 상수인경우 ( final static ) 에만 허용 ) : static멤버는 객체 생성없이 외부에서 사용할 수 있는 것인데 클래스가 인스턴스클래스면 클래스의 인스턴스를 생 성해야지만 안에 있는 멤버를 사용할 수 있기 때문에 모순이 일어난다. - static 내부 클래스에서는 외부 클래스의 인..

JAVA 2022.03.03

인터페이스 ( interface )

인터페이스란? - 추상 메서드의 집합 - 구현된 것이 전혀 없는 설계도. 껍데기 ( 모든 멤버가 public ) 추상클래스와 인터페이스의 공통점 추상메서드를 가지고 있다. 추상클래스와 인터페이스의 차이 추상클래스는 일반 클래스인데 추상메서드를 포함하고 있는 것이다. 그래서 생성자도 가지고 있고 멤버변수도 가지고 있다. 반면 인터페이스는 오로지 추상 메서드, 상수, static메서드, default메서드 만으로 이루어져 있다. 항상 public / static / abstract 이기 때문에 생략 가능하다. 일부만 써도 되고 전부 생략해도 된다. 인터페이스의 상속 - 인터페이스의 조상은 인터페이스만 가능 ( Object 가 최고 조상이 아니다 ) - 다중 상속이 가능. ( 추상메서드는 충돌해도 문제 없음 ..

JAVA 2022.03.02

추상 클래스, 추상 메서드

추상 클래스 ( abstract class ) - 미완성 설계도. 미완성 메서드( 추상 메서드 ) 를 갖고 있는 클래스 → 제품생성 불가 - 다른 클래스 작성에 도움을 주기 위한 것 . 인스턴스 (제품) 생성 불가 - 상속을 통해 추상 메서드를 완성해야 인스턴스 생성가능 - 코드의 중복 제거 추상 메서드 ( abstract method ) - 미완성 메서드. 구현부 (몸통, { } 가 없는 메서드 - 꼭 필요하지만 자손마다 다르게 구현될 것으로 예상되는 경우 사용 - 상속을 통해 자손이 완성하고 호출 ( 호출할 때는 선언부만 필요 ) 추상클래스의 작성 - 여러 클래스에 공통적으로 사용될 수 있는 추상클래스를 작성 or 기존 클래스의 공통 부분을 뽑아 추상클래스를 만든다. - 추상화된 코드는 구체화된 코드..

JAVA 2022.03.01

참조변수의 형변환

조상 클래스 : Car / 자손 클래스 : FireEngine , Ambulance 참조변수 f 는 FireEngine클래스 타입이다. 참조변수 c 는 Car클래스 타입이다. 참조변수 f2 는 FireEngine클래스 타입이다. 참조변수 a 는 Ambulance클래스 타입이다. Car c = (Car) f ; 참조변수 c 에 f를 대입하였는데 둘의 타입이 다르므로 참조변수 f에 (Car) f 로 형변환을 해주어야한다. // 조상인 타입으로 형변환을 할 때는 생략가능하다. 참조변수는 값을 넣어주는 것이 아니라 주소를 넣어주므로 참조변수 f와 c의 주소가 같다는 것을 의미한다. 그러나 f는 FireEngine클래스 타입이기 때문에 5가지의 기능을 사용할 수 있고, c 는 Car클래스 타입이기 때..

JAVA 2022.02.28

다형성 ( polymorphism )

다형성 - 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 → 참조변수로 사용 할 수 있는 멤버의 갯수가 달라짐. 조상 클래스 : Tv / 자손 클래스 : SmartTv SmartTV s = new SmartTv( ); // 참조 변수와 인스턴스의 타입이 일치 → 보편적 Tv t = new SmartTv( ); // 조상 타입 참조변수로 자손 타입 인스턴스 참조 → ok. 그러나 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. SmartTV s = new Tv( ); // 에러 클라이언트를 변경하지 않고, 서버의 구현 기능을 유연하게 변경할 수 있다. 조상타입의 참조 변수로 여러 자손타입의 객체를 다룰 수 있는데, 자손 타입의 객체를 변경해도 클라이언트는 그대로 사용가능하다.

JAVA 2022.02.27

캡슐화 ( Encapsulation )

캡슐화와 접근 제어자 접근제어자를 사용하는 이유 1. 외부로부터 데이터를 보호하기 위해서 2. 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서 ex) 외부에서 변수를 쉽게 변경할 수 없도록 변수들을 private으로 설정해주고 그 변수들에 접근할 수 있는 메서드를 public으로 설정해주어서 메서드안에 조건을 정해주어 조건에 만족할 때에만 변수값을 변경 할 수 있도록 한 것이다.

JAVA 2022.02.27
728x90
반응형