CSE/JAVA(21)
-
자바 JDBC
1. JDBC란? - JDBC (Java Database Connectivity) : DB의 종류에 상관 없이 자바에서 DB를 사용하기 위해 쓰는 API => 각 DB를 JDBC로 사용하기 위해서는 각 DB의 JDBC용 드라이버를 다운받아야 한다 2. 사용 방법 드라이버 로드하기 연결 생성하기 문장 실행하기 결과집합 사용하기 3. 사용 예시 public class Program{ public static void main(String[] args){ String url = "jdbc:mysql://localhost/DB이름"; String sql = "SELECT * FROM TABLENAME"; String id = "####"; String pw = "####"; Class.forName("com.m..
2021.08.16 -
[자바 객체 지향] 스프링이 사랑한 디자인 패턴 1
- 디자인 패턴은 객체 지향의 특성 중 상속, 인터페이스, 합성 (객체를 속성으로 사용)을 이용한다. 1. 어댑터 패턴(Adpater Pattern) - 어댑터 (Adapter) : 변환기. 즉, 서로 다른 인터페이스 사이에 통신이 가능하게 하는 것이다. - 어댑터 패턴은 개방 폐쇄 원칙을 활용한 설계 패턴이라고 할 수 있다. (1) ServiceA.java public class ServiceA { void runServiceA(){ System.out.println("ServiceA"); } } (2) ServiceB.java public class ServiceB { void runServiceB(){ System.out.println("ServiceB"); } } (3) AdapterService..
2021.08.16 -
[자바 객체 지향] 객체 지향 설계 5원칙 : ISP, DIP
1. ISP - 인터페이스 분리 원칙 => 다음과 같이 인터페이스로 역할에 따라 인터페이스로 나누는 것 - SRP와 ISP는 같은 문제에 대한 두 가지 다른 해결책이다. => 하지만 특별한 경우가 아니라면 단일 책임 원칙을 적용하는 것이 더 좋은 해결책이다. - 인터페이스 최소주의 원칙 : 인터페이스를 통해 메서드를 외부에 제공할 때는 최소한의 메서드만 제공하라는 것 => 상속의 혜택을 제대로 누리기 위해, 상위 클래스는 풍성할수록 좋고, 인터페이스는 작을수록 좋다. 2. DIP - 의존 역전 원칙 - 위와 같이 자동차와 스노우타이어 사이에 의존관계가 있다고 하자. => 하지만 자동차의 수명이 스노우타이어의 수명보다 길고, 이 경우, 자동차의 타이어를 일반 타이어로 교체할 때, 문제가 생긴다. => 따라..
2021.08.09 -
[자바 객체 지향] 객체 지향 설계 5원칙 : SRP, OCP, LSP
1. SRP - 단일 책임 원칙 - 클래스에 하나의 역할과 책임만 있도록, 역할과 책임을 분리하라는 것 => 클래스 뿐만 아니라 속성, 메서드 패키지, 모듈, 컴포넌트, 프레임워크 등에도 적용할 수 있다. 예시) - 남자는 반드시 군대에 가고, 여자는 절대로 군대에 가지 않는다고 하자 class 사람 { String 군번; ... } ... 사람 로미오 = new 사람(); 사람 줄리엣 = new 사람(); 줄리엣.군번 = "123456789"; => 다음과 같이 사람 클래스를 사용하게 되면 여자인 줄리엣이 군번 속성을 갖는 것을 막을 수 없다. => 따라서 사람 클래스를 상위 클래스로 두고, 남자 클래스와 여자 클래스를 만들고 공통점만 사람 클래스에 두면 된다. - 하나의 속성이 여러 의미를 갖는 경우..
2021.08.07 -
[자바 객체 지향] static 블록
- static 블록 예시 public class Animal { static{ System.out.println("동물 클래스 시작!"); } } public class Main{ public static void main(String[] args){ Animal pororo = new Animal(); } } //동물 클래스 시작! - 프로그램이 시작될 때, 모든 클래스가 T 메모리의 스태틱 영역에 로딩된다 (X) => 해당 패키지 또는 클래스가 처음으로 사용될 때 로딩된다 (O) => 따라서 위에서 Animal 클래스가 처음 사용되는 Animal pororo = new Animal(); 라인을 실행할 때, Animal 클래스가 스태틱 영역에 로딩되는 것이다. - static 블록은 해당 클래스가 처..
2021.08.07 -
[자바 객체 지향] 캡슐화
1. 객체 멤버의 접근 제어자 - UML 표기법 - : private 접근 제어자 ~ : default 접근 제어자 # : protected 접근 제어자 + : public 접근 제어자 - public : 모두가 접근 가능 - protected : 상속 또는 같은 패키지 내의 클래스에서 접근 가능 - [default] : 같은 패키지 내의 클래스에서 접근 가능 - private : 본인만 접근 가능 * 만약에 aaa.jar 파일 안에 packageOne 패키지가 있고, bbb.jar 파일 안에 packageOne 패키지가 있다면 => aaa.jar 파일 안의 packageOne 패키지 내 클래스나 객체는 bbb.jar 파일 안에 packageOne 패키지가 가진 public 멤버 뿐만 아니라 [defau..
2021.08.05