분류 전체보기
-
public static void main(String[] args) 1) 이게 무엇일까? Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다. 이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실행을 시작하는 역할을 합니다. 2) 하나씩 분석해보자 ● 구조 [접근 제어자] [키워드] [반환 타입] 메소드이름([스트링타입 배열 args]) { public static void main (String[] args) } ① public Java의 접근제어자(public, private, protected, default) 중 하나입니다. 접근제어자를 통해 특정 메소드에 접근 제약을 두는데 public은 프로젝트 내에서 자유롭게 접근할 수 있게 해줍니다. ..
[Java] public static void main(String[] args)가 무엇일까?public static void main(String[] args) 1) 이게 무엇일까? Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다. 이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실행을 시작하는 역할을 합니다. 2) 하나씩 분석해보자 ● 구조 [접근 제어자] [키워드] [반환 타입] 메소드이름([스트링타입 배열 args]) { public static void main (String[] args) } ① public Java의 접근제어자(public, private, protected, default) 중 하나입니다. 접근제어자를 통해 특정 메소드에 접근 제약을 두는데 public은 프로젝트 내에서 자유롭게 접근할 수 있게 해줍니다. ..
2023.07.11 -
메소드 선언 1) 메소드(Method)의 개념 클래스 안에서 어떤 작업을 수행하는 코드의 블록으로, 특정한 기능을 수행하고, 필요에 따라 값을 반환할 수 있습니다. 메소드는 다른 메소드를 호출할 수 있으며, 이를 통해 코드의 모듈화와 계층화를 구현할 수 있습니다. 2) 메소드 선언 메소드를 정의하고 구현하기 위한 구문 [접근 제어자] [반환 타입] 메소드이름([매개변수 리스트]) { // 메소드의 실행 코드 } ① 접근 제어자 ( Access Modifier ) 메소드의 접근 범위를 지정하는 키워드 ● public: 어떤 클래스에서든 접근 가능 ● protected: 같은 패키지 내 또는 상속 관계의 클래스에서 접근 가능 ● private: 해당 클래스 내에서만 접근 가능 ② 반환 타입 ( Return ..
[Java] 메소드 선언 Method Declaration메소드 선언 1) 메소드(Method)의 개념 클래스 안에서 어떤 작업을 수행하는 코드의 블록으로, 특정한 기능을 수행하고, 필요에 따라 값을 반환할 수 있습니다. 메소드는 다른 메소드를 호출할 수 있으며, 이를 통해 코드의 모듈화와 계층화를 구현할 수 있습니다. 2) 메소드 선언 메소드를 정의하고 구현하기 위한 구문 [접근 제어자] [반환 타입] 메소드이름([매개변수 리스트]) { // 메소드의 실행 코드 } ① 접근 제어자 ( Access Modifier ) 메소드의 접근 범위를 지정하는 키워드 ● public: 어떤 클래스에서든 접근 가능 ● protected: 같은 패키지 내 또는 상속 관계의 클래스에서 접근 가능 ● private: 해당 클래스 내에서만 접근 가능 ② 반환 타입 ( Return ..
2023.07.11 -
리스트 List 1) 리스트의 개념 순서가 있는 데이터의 모음입니다. 2) 리스트의 종류 ① ArrayList ● 개념 List 인터페이스를 구현한 클래스 중 크기가 동적으로 조정될 수 있는 가변 크기 배열 ● 생성 List arrayList = new ArrayList(); *초기값을 가지는 배열 선언 List myList = new ArrayList(Arrays.asList("apple", "banana", "orange")); 내부적으로 배열을 사용하여 요소를 저장합니다. 요소는 연속된 메모리 위치에 저장되며, 인덱스를 사용하여 접근할 수 있습니다. ● 특징 1) 자동크기조정 ArrayList는 요소의 추가나 삭제 시에 자동으로 크기를 조정합니다 기본적으로 요소가 추가될 때 배열의 크기는 현재 크기..
[Java] List 리스트의 개념과 종류리스트 List 1) 리스트의 개념 순서가 있는 데이터의 모음입니다. 2) 리스트의 종류 ① ArrayList ● 개념 List 인터페이스를 구현한 클래스 중 크기가 동적으로 조정될 수 있는 가변 크기 배열 ● 생성 List arrayList = new ArrayList(); *초기값을 가지는 배열 선언 List myList = new ArrayList(Arrays.asList("apple", "banana", "orange")); 내부적으로 배열을 사용하여 요소를 저장합니다. 요소는 연속된 메모리 위치에 저장되며, 인덱스를 사용하여 접근할 수 있습니다. ● 특징 1) 자동크기조정 ArrayList는 요소의 추가나 삭제 시에 자동으로 크기를 조정합니다 기본적으로 요소가 추가될 때 배열의 크기는 현재 크기..
2023.07.03 -
MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
[Spring] Spring MVC 구조MVC 패턴 1) MVC 패턴의 개념 MVC는 소프트웨어 아키텍처 패턴으로, 애플리케이션을 Model, View, Controller 세 가지 주요 구성 요소로 분리합니다. MVC 패턴은 유연성, 재사용성, 유지보수 용이성 등의 이점을 제공하지만, 복잡성과 추가적인 코드량이 증가할 수 있는 단점도 있습니다. 2) MVC 패턴의 구성 요소 ① Model Model은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다. 데이터베이스, 파일 시스템, 외부 API 등을 통해 데이터를 저장하고 관리하며, 데이터의 유효성 검사, 업데이트, 검색 등을 수행합니다. Model은 보통 독립적으로 설계되어 재사용 가능하며, 데이터 변경이 발생하면 이를 View와 Controller에 알리는 역할을 수행합니다. ● 예) 사용..
2023.06.30 -
Spring Contrainer & Bean 1) 스프링 컨테이너의 개념 스프링 프레임워크에서 객체(Bean)를 생성, 배포, 관리하기위해 커다란 박스를 만드는데 그것을 스프링 컨테이너라고 합니다. 2) Bean의 개념 스프링 프레임워크에서 관리되는 객체를 의미합니다. Bean은 크게 두가지로 나눌 수 있다. 일반적인 Java 클래스로서 특정한 인터페이스를 구현하거나 클래스를 상속받을 필요가 없습니다. 스프링에서는 POJO 클래스를 Bean으로 인식하고 스프링 컨테이너에 등록할 수 있습니다. 메타데이터는 XML, Annotation 또는 JavaConfig 형식으로 작성될 수 있습니다. 메타데이터는 Bean의 속성, 의존성, 라이프사이클 등을 정의하고, 스프링 컨테이너는 해당 메타데이터를 기반으로 Bea..
[Spring] 스프링 컨테이너(Spring Container) & 빈(Bean)Spring Contrainer & Bean 1) 스프링 컨테이너의 개념 스프링 프레임워크에서 객체(Bean)를 생성, 배포, 관리하기위해 커다란 박스를 만드는데 그것을 스프링 컨테이너라고 합니다. 2) Bean의 개념 스프링 프레임워크에서 관리되는 객체를 의미합니다. Bean은 크게 두가지로 나눌 수 있다. 일반적인 Java 클래스로서 특정한 인터페이스를 구현하거나 클래스를 상속받을 필요가 없습니다. 스프링에서는 POJO 클래스를 Bean으로 인식하고 스프링 컨테이너에 등록할 수 있습니다. 메타데이터는 XML, Annotation 또는 JavaConfig 형식으로 작성될 수 있습니다. 메타데이터는 Bean의 속성, 의존성, 라이프사이클 등을 정의하고, 스프링 컨테이너는 해당 메타데이터를 기반으로 Bea..
2023.06.29 -
의존성 역전 1) 의존성 역전(IoC, Inversion of Control)의 개념 소프트웨어 개발에서 컴퓨터 프로그램의 제어 흐름을 역전시키는 개념 일반적으로 프로그램의 제어 흐름은 개발자가 코드를 작성하여 결정하게 됩니다. 그러나 IOC에서는 제어 흐름의 결정 권한을 프레임워크나 컨테이너에 위임하고, 개발자는 이를 따르는 방식으로 개발을 진행합니다. "상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다."라는 개념 즉, 상위 수준 모듈은 하위 수준 모듈에 직접 의존하는 대신, 추상화된 인터페이스나 추상 클래스와 같은 추상화 계층에 의존해야 합니다. 2) 의존성 역전의 예시 public class Pikachu { public void attack() { // 피..
[Spring] 의존성 역전 (IoC, Inversion of Control)의존성 역전 1) 의존성 역전(IoC, Inversion of Control)의 개념 소프트웨어 개발에서 컴퓨터 프로그램의 제어 흐름을 역전시키는 개념 일반적으로 프로그램의 제어 흐름은 개발자가 코드를 작성하여 결정하게 됩니다. 그러나 IOC에서는 제어 흐름의 결정 권한을 프레임워크나 컨테이너에 위임하고, 개발자는 이를 따르는 방식으로 개발을 진행합니다. "상위 수준 모듈은 하위 수준 모듈에 의존해서는 안 된다. 둘 모두 추상화에 의존해야 한다."라는 개념 즉, 상위 수준 모듈은 하위 수준 모듈에 직접 의존하는 대신, 추상화된 인터페이스나 추상 클래스와 같은 추상화 계층에 의존해야 합니다. 2) 의존성 역전의 예시 public class Pikachu { public void attack() { // 피..
2023.06.28 -
의존성 주입 1) 의존성 주입의 개념 DI는 객체가 직접 필요로 하는 의존성을 생성자, Setter 메서드, 필드 주입 등의 방법으로 주입받는 것을 의미 이를 통해 객체 간의 결합도를 낮추고, 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다. 2) 의존성 주입의 세가지 방법 ① 생성자 주입 ( Constructor Injection ) 생성자를 통해 의존성을 주입하는 방법입니다. 클래스의 생성자를 정의하고, 해당 클래스가 필요로 하는 의존성을 생성자의 매개변수로 선언합니다. public class Attack { private String name; // Attack 클래스 선언 public Attack(String name) { this.name = name; } public void perform..
[Spring] 의존성주입(DI, Dependency Injection)의존성 주입 1) 의존성 주입의 개념 DI는 객체가 직접 필요로 하는 의존성을 생성자, Setter 메서드, 필드 주입 등의 방법으로 주입받는 것을 의미 이를 통해 객체 간의 결합도를 낮추고, 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다. 2) 의존성 주입의 세가지 방법 ① 생성자 주입 ( Constructor Injection ) 생성자를 통해 의존성을 주입하는 방법입니다. 클래스의 생성자를 정의하고, 해당 클래스가 필요로 하는 의존성을 생성자의 매개변수로 선언합니다. public class Attack { private String name; // Attack 클래스 선언 public Attack(String name) { this.name = name; } public void perform..
2023.06.27 -
1) 스프링의 개념 Java 플랫폼에서 애플리케이션 개발을 위한 오픈 소스 프레임워크 2) 스프링의 기원 1』개발자는 누구인가? 호주 시드대학교 출신의 컴퓨터 프로그래머 로데릭 로드 존슨이 전통적인 J2EE (Java 2 Platform, Enterprise Edition) 개발 방법, 특히 EJB의 문제점과 복잡성을 지적하고, 개발자가 보다 간결하고 유연한 애플리케이션을 개발할 수 있도록 경량 프레임워크인 스프링을 제작함. 2』 왜? 전통적인 J2EE 개발의 문제때문에 !! J2EE(Java 2 Platform, Enterprise Edition)는 기업용 Java 플랫폼으로, 웹 애플리케이션 및 분산 애플리케이션을 개발하기 위한 다양한 기능과 API를 제공하였으나, 아래와 같은 문제점들이 있었습니다...
[Spring] Spring의 개념과 기원1) 스프링의 개념 Java 플랫폼에서 애플리케이션 개발을 위한 오픈 소스 프레임워크 2) 스프링의 기원 1』개발자는 누구인가? 호주 시드대학교 출신의 컴퓨터 프로그래머 로데릭 로드 존슨이 전통적인 J2EE (Java 2 Platform, Enterprise Edition) 개발 방법, 특히 EJB의 문제점과 복잡성을 지적하고, 개발자가 보다 간결하고 유연한 애플리케이션을 개발할 수 있도록 경량 프레임워크인 스프링을 제작함. 2』 왜? 전통적인 J2EE 개발의 문제때문에 !! J2EE(Java 2 Platform, Enterprise Edition)는 기업용 Java 플랫폼으로, 웹 애플리케이션 및 분산 애플리케이션을 개발하기 위한 다양한 기능과 API를 제공하였으나, 아래와 같은 문제점들이 있었습니다...
2023.06.27