본문 바로가기

전체 글292

Entity 클래스와 Dto 클래스의 차이 Entity 클래스는 가장 핵심적인 클래스이다. 테이블과 매핑되는 Entity 클래스는 Request / Response 로서 사용되면 안된다. Request / Response 로는 Dto 클래스를 이용하며, 주로 Dto 클래스는 view 를 위한 클래스로 사용된다. [출처] https://jojoldu.tistory.com/251 2022. 7. 23.
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_6주차 학습일지 # 객체지향 1. 추상화, 상속, 은닉, 재사용, 인터페이스 등의 특성을 띔 2. 실존하는 사물을 있는 그대로 모델링하여, 그 사물을 객체(Object), 그 사물이 하는 행위를 Method, 그 사물이 가지는 속성을 변수(Variable)라고 정의 # 객체의 3가지 요소 1. 상태 유지 (객체의 상태) 객체의 속성은 변수로 정의되어져야 하고, 이 속성값이 바뀌면 객체의 상태도 바뀌어야 함 2. 기능 제공 (객체의 책임) 객체의 기능은 Method를 통해 제공되어져야 함 3. 고유 식별자 제공 (객체의 유일성) 각각의 객체는 고유한 식별자를 가져야 함 ※ 이 3가지 요소가 갖춰지지 않았을 경우, 불완전한 객체라고 부름 # 물리 객체 & 개념 객체 물리 객체 : 실제로 사물이 존재하고, 이것을 클래스로 정.. 2022. 7. 21.
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_5주차 학습일지 # 자료구조 1. 메모리 상에서 자료를 관리하는 여러 구현 방법들 2. 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 효율적으로 자료를 관리할 수 있다. # 선형 자료구조 앞뒤의 자료가 일대일의 관계 1. 배열(array) 1) 정해진 크기의 메모리를 먼저 할당받아서 사용하고, 자료의 물리적 위치와 논리적 위치가 같다. 2) 자료를 추가/편집하는데 느리다. 3) 빠르게 특정 요소를 찾아낼 수 있다. 2. 연결리스트(linkedlist) 1) 자료가 추가될 때마다 메모리를 할당받고, 자료는 링크로 연결된다. 자료의 물리적 위치와 논리적 위치가 다를 수 있다. 2) 자료를 추가/편집하는데 빠르다. 3) 특정 요소를 찾는데는 느리다. 3. 스택(stack) 1) 가장 나중에 입력된 자료가 가장 먼저 출.. 2022. 7. 14.
Interface Interface 내에 메서드를 나타낼 때는 무조건 추상 메서드를 사용한다. public abstract void method(); 여기서, public abstract는 생략 가능하다. 2022. 7. 9.
return null; return null;은 리턴하는 값의 타입이 객체라는 뜻이다. 아무것도 없게 반환하되, 그 타입은 객체로 해주고 싶을 때 사용한다. 2022. 7. 9.
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_4주차 학습일지 # 상속이 사용되는 관계들 1. IS - A 관계 ( is a relationship : inheritance ) 1) 일반적인 클래스와 구체화된 클래스 간의 관계 2) 상위 클래스 & 하위 클래스 간의 관계 3) 클래스 간의 결합도가 높다. 4) 계층 구조가 복잡하거나 hierarchy가 높으면 좋지 않다. 2. HAS - A 관계 ( composition ) 1) 포함하는 관계 2) 코드 재사용의 가장 일반적인 방법 3) 상속하지 않는다. 4) 예시 : Subject 클래스를 포함하는 Student 클래스 ※ 클래스를 재활용하고 싶다고 해서 무조건 상속을 하진 않는다. HAS - A 관계를 정의해서 재사용하는 방법이 있다. # 다운 캐스팅 ( downcasting ) 1. 업캐스팅 된 클래스를 다시 .. 2022. 7. 7.
[패스트캠퍼스] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강_3주차 학습일지 # static 변수 1. 공통으로 사용하는 변수 ex) 카드회사에서 카드를 발급할 때마다 카드에 순차적인 새로운 카드 번호를 입력 (serialNum) ex) static int serialNum = 1000; 2. 인스턴스가 생성될 때 만들어지는 변수가 아니라, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당한다. 3. 클래스 변수, 정적 변수라고도 한다. 4. 인스턴스의 생성과는 상관 없이 사용이 가능하므로 클래스 이름으로 직접 참조한다. ex) Student.serialNum = 100; # static 변수를 private으로 선언하게 되면 getter / setter를 구현한다. # 지역 변수 (로컬 변수) 1. 함수의 내부에 선언된다. 2. 함수의 내부에서만 사용된다. 3. 스택 메모리에 .. 2022. 7. 1.
외부에서 객체를 받는 매개변수 왼쪽은 Student 클래스, 오른쪽은 Bus 클래스이다. 왼쪽 클래스의 13번째 줄을 보면, Bus bus , bus.take 처럼 특이한 모양의 메소드 구현법이 있다. 여기서는 Student 클래스의 입장에서 봤을 때, 외부에서 만들어진 Bus 객체를 이용해 bus라는 매개변수를 선언했다. 결국, Bus 객체를 받은 것이다. 이렇게 되면 Bus 클래스의 메서드들을 사용할 수 있게 된다. 여기서는 bus라는 매개변수를 인자로 받아서 Bus 객체의 take 메서드를 호출한 것이다. 이런 메서드 구현법도 있으니 알아둘 것. 2022. 6. 28.
Scanner로 입력받을 시, nextInt() 후 nextLine() 안되는 이유 일단 nextInt()는 입력받는 것이 숫자인 경우, nextLine()은 입력받는 것이 문자열인 경우 사용된다. nextLine() -> nextInt() 의 순서로 사용하면 문제 없다. 그러나, nextInt() -> nextLine() 의 순서로 사용하면 nextLine()의 입력을 받지 않는다. 그 이유는 nextInt()는 숫자를 입력하고 난 뒤, 치게 되는 엔터(개행문자)를 제거해주지 않기 때문에 그 엔터가 nextLine()의 입력값에 들어가기 때문이다. 해결방법은 nextInt()의 구문 마지막에 scanner.nextLine()을 넣어주면 된다. 예시 ) 2022. 6. 27.