[java/spring] MVC 패턴이란?
2022. 6. 13. 14:36
몰아 넣기
MVC란? MVC 패턴은 Model, View, Controller의 줄임말로써, 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다. MVC 패턴을 사용하는 이유 ⭐️ 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되기 때문이다. `MVC 패턴의 사용 목적` 은 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게 애플리케이션을 만든다면, 유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 중복코딩이라는 문제점 또한 사라지게 되기 때문이다. MVC1 패턴 MVC1은 아키텍처가 간단하고 JSP에 거..
[java] 클래스, 인스턴스, 메소드란?
2022. 6. 13. 13:47
몰아 넣기
클래스란? 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것이라고 할 수 있습니다. 즉, 클래스는 객체의 속성을 정의해 놓은 것이죠. 클래스 내부의 정보를 멤버 변수라라고 합니다. 여기 붕어빵 틀이 있습니다! 붕어빵 틀은 붕어빵을 만드는데 이용이 되죠. 클래스랑 인스턴스도 이와 마찬가지로 생각하시면 됩니다. 붕어빵을 만드는 틀이 곧 클래스가 되며 붕어빵 틀로부터 만들어진 붕어빵이 곧 인스턴스가 되는 것입니다! 클래스 선언방법 클래스명 앞에 class 라고 선언을 해주면 클래스가 생성된다. class Main {} 인스턴스(Instance)란 어떠한 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 합니다. 아래 코드를 보면 Phone라는 클래스에는 컴퓨터의 모델, 색깔, 가격에 대한 정보..
[java] 생성자란?
2022. 6. 13. 13:45
몰아 넣기
생성자란? 생성자는 인스턴스가 생성될 때 사용되는 '인스턴스 초기화 메소드'입니다 이 생성자를 이용해서 인스턴스가 생성될 때 수행할 동작을 코드로 짤 수 있는데요. 대표적으로 인스턴스 변수를 초기화 하는 용도로 사용합니다. 생성자 형식 클래스이름 (타입 변수명, 타입 변수명, ...){ 인스턴스 생성 될 때에 수행하여할 코드 변수의 초기화 코드 } 생성자에게도 생성자만의 조건이 있기 때문에 이 부분을 따라줘야합니다! 1. 생성자의 이름은 클래스명과 같아야 한다. 2. 생성자는 리턴 값이 없다. 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 합니다! 어라? 우리는 만들지 않았는데 그럼 어떻게 오류가 나지 않았지? 라는 의문이 생기실 겁니다. 사실, 클래스에 생성자가 1개도 작성이 되어있지 않을 경우,..
[java] 자바 접근제어자
2022. 6. 10. 16:40
몰아 넣기
접근제어자란? 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 합니다. private : 같은 클래스 내에서만 접근이 가능합니다 default(nothing) : 같은 패키지 내에서만 접근이 가능합니다. protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능합니다. public : 접근 제한이 전혀 없습니다. 👉 위의 설명을 토대로 접근 범위에 대해 정리를 하면 다음과 같습니다. (좁음) (넓음) private → default → protected → public 그렇다면 왜 접근 제어자를 사용하지? 객체지향 프로그래밍이란 객체들 간의 상호작용을 코드로 표현하는 것입니다. 이때 객체들간의 관계에 따라서 접근 할 수 있는 것과 아닌 것, 권한을..
[java/객체 지향] 객체 지향 프로그래밍
2022. 6. 10. 16:37
몰아 넣기
객체지향과 절차지향? '절차지향'이 아닌 '절차적 프로그래밍'이라고 합니다. 사실 조금만 생각해보아도 프로그래밍의 기본 틀이 절차를 기반으로 두고 있는데 이 절차를 지향한다는 것도 이상하다. 객체지향 프로그래밍의 반대 개념이 절차지향이라고 오해하는 분들이 많은데 절대 반대개념이 아닙니다. 그렇기 때문에 정확한 표현으로 말하자면 '객체지향 프로그래밍(OOP : Object Oriented Programming)'과 절차적 프로그래밍 (PP : Procedure Programming)이라는 말이 더 정확합니다. 객체지향언어 기준 캡슐화, 다형성, 클래스 상속을 지원하는가? 데이터 접근 제한을 걸 수 있는가? 절차적 프로그래밍과 객체지향 프로그래밍 먼저 절차적 프로그래밍(Procedure Programming..
[java/collection] 스택(stack), 큐(queue), ArrayDeque 대해서
2022. 6. 10. 13:25
몰아 넣기
스택이란?(stack) 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 자료구조로 입니다. 이것을 LIFO(Last In First Out) 라고 합니다. 웹브라우저의 앞페이지 이동 뒤페이지 이동 / 그릇 쌓기 대표예시입니다. 아래 그림을 보도록 하죠. 먼저 삽입된 값인 17이 가장 아래로, 이후 삽입되는 값은 그 위에 쌓이기 시작합니다. 이후, pop()을 통해 값을 반환할 때도 마지막에 삽입된 값인 45가 가장 먼저 반환되죠! 예제 public class Main { public static void main(String[] args) { Stack stack = new Stack(); stack.push(1); stack.push(3); stack.push(5); stack.push(7); Sys..
[java/collection] 리스트(list), 셋(set), 맵(map) 대해서
2022. 6. 10. 13:24
몰아 넣기
List ArrayList는 배열을 이용하여 데이터를 저장하는 List 인터페이스입니다 순서가 있는 나열된 데이터를 표현합니다. 예제 public class Main { public static void main(String[] args) { List list = new ArrayList(10); list.add(1); list.add(5); list.add(4); list.add(11); list.add(10); // ArrayList에 값 한개씩 입력 System.out.println(list); // [1,5,4,11,10] Collections.sort(list); // list 정렬 System.out.println(list); // [1,4,5,10,11] System.out.println(l..
[java] 제네릭스(Generics)이란?
2022. 6. 10. 13:22
Java&Spring
제네릭스(Generics)이란? 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능을 의미합니다. 제네릭스를 왜 사용해야할까? 객체의 타입을 컴파일 시에 체크하기 때문에 안정성이 높아집니다. 의도하지 않은 타입의 객체가 저장되는 것을 막고 잘못된 형변환을 막을 수 있기 때문입니다! 제네릭스의 형식과 약어 제네릭스의 형식 public class 클래스명 {...} public interface 인터페이스명 {...} 자주 사용되는 타입인자 약어 - == Type - == Element - == Key - == Value - == Number - == Result 제네릭스를 활용한 예제 제네릭스를 우리는 이미 사용하고 있었는데요. 제네릭스를 가장 잘 사용한 예제는 바..