전체 글
-
접근제어자Programming/Java 2021. 8. 9. 20:11
접근제어자 클래스, 멤버변수, 메서드, 생성자에 사용 -> 외부에서의 접근을 제한하는 용도 접근제어자별 접근 가능 범위 제어자 같은 클래스 같은 패키지 자손클래스 전체 public ○ ○ ○ ○ protected ○ ○ ○ default ○ ○ private ○ ※ protected는 패키지 관계 없이 상속관계의 자손 클래스에서 접근하도록 제한하는 것이 목적이나, 같은 패키지 내에서는 상속 관계가 아니어도 접근 가능 사용 가능한 접근 제어자 대상 사용 가능한 접근제어자 클래스 public, default 메서드 public, protected, default, private 멤버변수 지역변수 없다 접근제어자를 사용하는 이유 : 캡슐화 1. 외부로부터 데이터를 보호 2. 외부에는 불필요, 내부적으로만 사용..
-
제어자 modifierProgramming/Java 2021. 8. 9. 11:18
제어자 클래스, 멤버변수, 메서드 선언부에 사용하여 부가적인 의미 부여 접근제어자 : public, protected, default, private (조합하여 사용 불가) 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp(다른 제어자와 조합 가능) static 사용되는 위치 : 멤버변수, 메서드, 초기화블럭 제어자 대상 의미 static 멤버변수 모든 인스턴스에 공통적으로 사용되는 클래스 변수 (모든 인스턴스에서 공통으로 유지해야 하는 값이 있는 경우 static을 붙이자) 클래스가 메모리에 로드 시 생성됨 -> 클래스변수는 인스턴스 생성하지 않고 사용 가능 메서드 인스턴스를 생성하지 않고 호출 가..
-
Spring FrameworkProgramming/Spring 2021. 8. 6. 19:20
■ 스프링 프레임워크란? 자바 언어 기반의 프레임워크 객체지향 언어의 특징을 잘 살린 애플리케이션을 개발할 수 있게 도와주는 프레임워크 * 프레임워크 : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용 가능하게끔 클래스들을 제공하는 틀 * 라이브러리 : 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램 ■ 짧게 보는 히스토리 지금은 자바 기반 애플리케이션 개발에 스프링 프레임워크가 기본으로 쓰이지만 스프링 프레임워크 이전에는 EJB가 있었다. EJB (Enterprise JavaBeans) 썬 마이크로시스템사에서 제공, Java EE(엔터프라이즈 에디션)의 스펙을 구현한 표준규약 비즈니스로직, 데이터베이스, 트랜잭션 처리 등 서버 애플리케이션 개발을 용이하게 함 기술이 복잡, EJB..
-
다형성Programming/Java 2021. 8. 2. 11:04
객체지향 프로그램을 객체들 간 메시지를 주고받고 상호작용하는 협력 관계로 설계/바라보는 관점 객체지향 특징 추상화, 캡슐, 상속, 다형성 다형성 참조변수의 다형성 상속 관계/개념으로부터 다형성이 나온다 조상클래스 타입 참조변수로 여러 자손 타입 인스턴스를 참조할 수 있는 것 같은 타입의 인스턴스라도, 참조변수 타입에 따라 사용할 수 있는 멤버의 개수가 달라진다. (참고 : 모든 참조변수는 null 또는 4byte 주소값이 저장되며, 참조변수의 타입은 참조할 수 있는 객체의 타입과 사용할 수 있는 멤버의 수를 결정한다.) 자손타입 참조변수로 조상타입 인스턴스를 참조할 수는 없다. 이유 자손타입 참조변수로 조상타입 인스턴스를 참조하면 존재하지 않는 멤버를 사용할 가능성이 있으므로 ※ 클래스는 상속을 통해 확..
-
프로그래밍 언어의 분류Programming/Java 2021. 7. 31. 21:52
1. 개발 편의성에 따라 종류 설명 저급언어 기계가 이해할 수 있도록 만들어진 언어 (기계어, 어셈블리어) 고급언어 개발자가 이해하기 쉽도록 작성된 언어 (C, C++, 자바, 파이썬) 2. 실행하는 방식에 따라 종류 설명 명령형 언어 명령어들을 순차적으로 실행하는 프로그래밍 방식 (절차형 언어라고도 한다) FORTRAN, COBOL, PASCAL, C 객체지향 언어 객체 간 메시지 통신을 이용해 프로그래밍 하는 방식 JAVA, C++ 함수형 언어 수학적 수식과 같은 함수들로 프로그램을 구성하여 호출하는 방식 LISP 논리형 언어 논리 문장을 이용해 프로그램 표현, 계산 수행 개념에 기반한 방식 프롤로그 3. 구현 기법에 따른 분류 종류 설명 컴파일 방식 언어 고급언어를 기계어로 번역 컴파일러에 의해 실..
-
소프트웨어 아키텍처 패턴, 디자인 패턴SW 일반 2021. 7. 30. 02:22
소프트웨어 아키텍처 패턴 개념 - 소프트웨어를 설계할 때 참조할 수 있는, 일반화되고 재사용 가능한 문제 해결 방식 필요성 - 개발 시 시행착오를 줄여 개발 효율, 품질 향상 - 이미 검증 된 구조 -> 보다 예측 가능하고 안정적인 개발 가능 유형 계층화패턴 Layered Pattern - 시스템을 계층으로 구분하여 구성 - 하위 모듈들은 특정 수준의 추상화 제공, 각 계층은 다음 상위 계층에 서비스 제공 - 서로 마주보는 두 개의 계층 사이에서만 상호작용 클라이언트 - 서버패턴 Client-Server pattern - 하나의 서버와 다수의 클라이언트로 구성 - 서버는 클라이언트로부터 요청을 대기, 클라이언트 요청 시 서버에서 서비스 제공 파이프-필터 패턴 Pipe-Filter pattern - 데이터..
-
변수, 배열, 구조체, 클래스, 객체, 인스턴스Programming/Java 2021. 7. 29. 19:50
변수 : 하나의 데이터를 저장할 수 있는 공간 배열 : 같은 타입의 데이터를 저장할 수 있는 연속된 공간 구조체 : 서로 관련 있는 여러 데이터를 타입 관계 없이 한 집합으로 저장할 수 있는 공간 클래스 : 객체를 생성하는 데 사용되는 틀, 서로 관련 있는 데이터와 함수의 결합으로 볼 수 있다. 객체 : 클래스에 정의된 내용대로 메모리에 생성된 대상 (보다 포괄적) 인스턴스 : 클래스로부터 만들어진 객체 (보다 구체적) ※ 클래스를 이용해 객체를 만드는 과정 : 클래스의 인스턴스화
-
오버라이딩과 오버로딩Programming/Java 2021. 7. 29. 19:15
절대 혼동해서는 안 될 자바의 기초 개념 중 하나는 오버라이딩과 오버로딩이다. 이름은 비슷하지만 오버라이딩과 오버로딩은 전혀 다르다. 오버라이딩 정의 상속관계에서, 조상 클래스로부터 물려받은 메서드를 자식 클래스에서 재정의하는 것 사용 상황 조상 클래스로부터 상속받은 메서드의 내용을 다른 내용으로 변경할 필요가 있을 때 (change, modify) 조건 1. 선언부가 일치해야 한다 ① 메서드 이름이 같아야 한다. ② 매개변수가 같아야 한다. ③ 반환타입이 같아야 한다. 2. 접근제어자는 조상클래스보다 좁으면 안 된다. ※ 접근제어자의 접근 범위 : (넓다 좁다) 3. 조상 클래스 메서드보다 예외의 개수를 더 많이 선언할 수 없다. 단순히 명시적으로 나열된 예외 개수가 적은지 많은지의 문제가 아니다. 자..