![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAe67R%2FbtrEH4hFpmk%2F2oHvhXPFIoK3c8mkaCZPCK%2Fimg.png)
[java/spring]DTO, DAO, VO에 대해서
2022. 6. 13. 14:38
몰아 넣기
DTO, DAO, VO에 대해서 쓰는 이유 학원과 프로젝트를 하면서 DTO DAO VO를 많이 사용해 보았지만 정확한 뜻을 모르고 사용했었다. 항해99를 하면서 JPA를 사용하면서 Domain과 DTO를 따로 만들어 주면서 DTO에 대해 설명을 해주었다. 이번 계기로 DAO DTO VO에 대해 알고 넘어가면 좋을거같아서 쓰게 되었다. DAO DAO(Data Access Object) 는 데이터베이스의 data에 접근하기 위한 객체입니다. DataBase에 접근 하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다. 프로젝트마다 다르겠지만 보통 Repository 또는 Mapper라고도 클래스명을 정의를 많이 했었다. DTO DTO(Data Transfer Object) 는 계층 간 데이터 교환을 ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccomEY%2FbtrEHDrj5pz%2FXLrx7n4OgR9E85O9ZIqDwk%2Fimg.png)
[java/spring] MVC 패턴이란?
2022. 6. 13. 14:36
몰아 넣기
MVC란? MVC 패턴은 Model, View, Controller의 줄임말로써, 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다. MVC 패턴을 사용하는 이유 ⭐️ 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되기 때문이다. `MVC 패턴의 사용 목적` 은 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되기 때문이다. MVC1 패턴 MVC1은 아키텍처가 간단하고 JSP에 거..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnTDc6%2FbtrEDQSs9We%2FKG0y4YklfAOkK8iNkXfYt1%2Fimg.png)
[java] 클래스, 인스턴스, 메소드란?
2022. 6. 13. 13:47
몰아 넣기
클래스란? 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것이라고 할 수 있습니다. 즉, 클래스는 객체의 속성을 정의해 놓은 것이죠. 클래스 내부의 정보를 멤버 변수라라고 합니다. 여기 붕어빵 틀이 있습니다! 붕어빵 틀은 붕어빵을 만드는데 이용이 되죠. 클래스랑 인스턴스도 이와 마찬가지로 생각하시면 됩니다. 붕어빵을 만드는 틀이 곧 클래스가 되며 붕어빵 틀로부터 만들어진 붕어빵이 곧 인스턴스가 되는 것입니다! 클래스 선언방법 클래스명 앞에 class 라고 선언을 해주면 클래스가 생성된다. class Main {} 인스턴스(Instance)란 어떠한 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 합니다. 아래 코드를 보면 Phone라는 클래스에는 컴퓨터의 모델, 색깔, 가격에 대한 정보..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNpMhR%2FbtrEEZ2JVAn%2Fo09qU0ZdDb3bDjV5zFRSO0%2Fimg.png)
[java] 생성자란?
2022. 6. 13. 13:45
몰아 넣기
생성자란? 생성자는 인스턴스가 생성될 때 사용되는 '인스턴스 초기화 메소드'입니다 이 생성자를 이용해서 인스턴스가 생성될 때 수행할 동작을 코드로 짤 수 있는데요. 대표적으로 인스턴스 변수를 초기화 하는 용도로 사용합니다. 생성자 형식 클래스이름 (타입 변수명, 타입 변수명, ...){ 인스턴스 생성 될 때에 수행하여할 코드 변수의 초기화 코드 } 생성자에게도 생성자만의 조건이 있기 때문에 이 부분을 따라줘야합니다! 1. 생성자의 이름은 클래스명과 같아야 한다. 2. 생성자는 리턴 값이 없다. 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 합니다! 어라? 우리는 만들지 않았는데 그럼 어떻게 오류가 나지 않았지? 라는 의문이 생기실 겁니다. 사실, 클래스에 생성자가 1개도 작성이 되어있지 않을 경우,..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz9g8B%2FbtrErfFOcXP%2FfU1IM4VkyGxYxNQTfkk5cK%2Fimg.png)
[java/객체 지향]추상클래스, 인터페이스에 대해서
2022. 6. 13. 13:44
몰아 넣기
추상클래스(abstract class) 추상클래스란? 추상클래스는 추상메소드를 선언할 수 있는 클래스를 의미합니다. 또한 추상클래스는 클래스와는 다르게 상속받는 클래스 없이 그 자체로 인스턴스를 생성할 수는 없습니다. 추상메소드는 설계만 되어있으며 수행되는 코드에 대해서는 작성이 안된 메소드입니다. 미완성으로 남겨두는 이유는 상속받는 클래스 마다 반드시 동작이 달라지는 경우에 상속받는 클래스 작성자가 반드시 작성하도록하기 위함입니다. 추상 클래스 예제 abstract class Bird { private int x, y, z; void fly(int x, int y, int z) { printLocation(); System.out.println("이동합니다."); this.x = x; this.y = ..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F15WWU%2FbtrEtbo7NZo%2FrUflTbUC7QwwKi0eXHhsC0%2Fimg.png)
[java] 자바 접근제어자
2022. 6. 10. 16:40
몰아 넣기
접근제어자란? 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 합니다. private : 같은 클래스 내에서만 접근이 가능합니다 default(nothing) : 같은 패키지 내에서만 접근이 가능합니다. protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능합니다. public : 접근 제한이 전혀 없습니다. 👉 위의 설명을 토대로 접근 범위에 대해 정리를 하면 다음과 같습니다. (좁음) (넓음) private → default → protected → public 그렇다면 왜 접근 제어자를 사용하지? 객체지향 프로그래밍이란 객체들 간의 상호작용을 코드로 표현하는 것입니다. 이때 객체들간의 관계에 따라서 접근 할 수 있는 것과 아닌 것, 권한을..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr4h57%2FbtrEtHOiHA5%2FciEmDCZZAnF4dgGxT7hRyK%2Fimg.png)
[java/객체지향] 오버로딩(overloading) vs 오버라이딩(overriding)
2022. 6. 10. 16:39
몰아 넣기
오버로딩이란? 한 클래스 내에 동일한 이름의 메소드를 여러개 정의하는 것 오버로딩의 조건 메소드 이름이 동일해야 합니다. 매개변수의 개수 혹은 타입이 달라야 합니다. 오버로딩 예제 int add(int x, int y, int z) { int result = x + y + z; return result; } long add(int a, int b, long c) { long result = a + b + c; return result; } int add(int a, int b) { int result = a + b; return result; } 잘못된 오버로딩 int add(int x, int y, int z) { int result = x + y + z; return result; } long add..
![thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH1Zrs%2FbtrEtvm4BT1%2FKstt69BYyDLrgapZmjIR90%2Fimg.png)
[java/객체 지향]자바 상속이란?
2022. 6. 10. 16:38
몰아 넣기
상속이란? 기존의 클래스를 재사용하는 방식 중의 하나입니다. 재사용을 하면 장점은? 코드를 재사용하면, 코드와 클래스가 많아질수록 관리가 용이하다는 장점이 있습니다. 변경사항만 코드로 작성하므로 상대적으로 적은 양의 코드를 작성할 수 있게 됩니다. 상속의 특징 부모 클래스로에서 정의된 필드와 메소드를 물려 받습니다. 새로운 필드와 메소드를 추가할 수 있습니다. 부모 클래스스에서 물려받은 메소드를 수정할 수 있습니다. 상속의 형식 상속은 extends를 이용하여 사용할 수 있습니다. class Animal{} class Dog extends Animal{} //Animal를 상속받은 Dog class Cat extends Animal{} //Animal를 상속받은 Cat 그림에서 Animal 는 부모 클래..