Java

Programming/Java

Java의 이해: 구현 (프로그래밍 언어의 규칙)

💡 프로그래밍 언어 구현 단계에서는 단순히 프로그래밍 언어와 코딩 규칙에 대해 다룬다. 1. Fortran: 항공, 무기 분야 2. Cobol: 은행 시스템 3. C/C++/C#: 자율주행, 홈 오퍼레이션(Iot 사물인터넷), 임베디드 시스템(컴퓨터 시스템이 들어가 있지 않은 곳에 시스템을 넣는 것) ⚬ .NET Framework(닷넷 프레임워크) .NET은 모든 운영 체제에서 실행할 수 있는 데스크톱, 웹, 모바일 애플리케이션 빌드를 위한 오픈 소스 플랫폼이다. .NET은 CLS를 따르는 언어라면 모두 실행 및 빌드가 가능하다. 4. Java: 웹 개발, 모바일 애플리케이션, 데스크톱 애플리케이션, 게임 개발, 데이터베이스 ⚬ 자바 가상 머신(JVM: Java Virtual Machine) JVM은 J..

Programming/Java

Java의 이해: 디자인 패턴

💡 디자인 패턴 Design pattern 디자인 패턴은 소프트웨어 설계 과정에서 자주 발생하는 문제를 패턴 형태로 일반화한 것으로, 이를 이용하면 코드 및 디자인을 재사용하여 모듈의 역할 또는 모듈 간의 인터페이스 구현 설계 등의 작업을 효율적이고 간편하게 할 수 있다. ⚬ GoF의 디자인 패턴 1995년 GoF(Gang of Four)가 처음으로 디자인 패턴을 구체화하였다. GoF의 디자인 패턴은 소프트웨어 공학에 가장 많이 사용되는 디자인 패턴이며, 목적에 따라 행위 패턴 11개, 구조 패턴 7개, 생성 패턴 5개 총 23개의 패턴으로 구성되어 있다. 💡 행위 패턴 Behavioral 행위 패턴은 클래스나 객체의 상호작용, 손실 결합을 패턴화한 것으로, 하나의 객체를 여러 객체로 분할하여 결합도를 ..

Programming/Java

Java의 이해: 아키텍처

💡아키텍처 (Architecture) 아키텍처는 소프트웨어의 뼈대를 만드는 과정으로, 요구분석명세서의 기능을 제한조건에 따라 설계하는 것을 의미한다. ⚬ 컴포넌트 (Component) 컴포넌트는 역할을 가지고 있고 독립적으로 존재할 수 있는 시스템의 한 부분이다. ⚬ 아키텍처의 특징 소프트웨어의 추상화된 전체 구조를 제공하며, 소프트웨어의 구성요소(서브시스템, 컴포넌트) 등을 다룬다. 또한 세부 내용보다 중요 기능을 다루며, 비기능적 요구사항을 반영하고, 제한조건을 정의한다. 1. 시스템 아키텍처: 인프라의 물리적인 구조 2. 소프트웨어 아키텍처: 서버 중심으로 작동하는 소프트웨어의 논리 구조 ⚬ 소프트웨어 설계를 위한 작업 분류 1. 소프트웨어 아키텍처 설계 2. 인터페이스 설계 3. 자료저장소 설계 ..

Programming/Java

Java의 이해: 인터페이스와 컬렉션

💡인터페이스 (Interface) 인터페이스는 사용하는 플랫폼이 다르더라도 프로그램이 같은 목적에 따라 같은 기능을 수행하도록 하는 것이다. 객체를 생성할 수 없으므로 필드를 선언할 때 객체 생성과는 관계없이 사용할 수 있는 static으로 선언한다. 1. 상수 (Public Static Final): 인터페이스에서 정해주는 값을 바꾸지 말고 제공하는 값만 참조 2. 추상 메소드 (Public Abstract): 추상 메소드를 오버라이딩해서 재구현 3. 디폴트 메소드 (Public Default): 기본적으로 인터페이스를 제공하지만 각각 수정 가능 4. 정적 메소드 (Public Static): 제공하는 인터페이스만을 사용 ⚬ 사용자 인터페이스 사람과 사람, 사람과 사물, 사물과 사물 사이를 연결하는 매..

Programming/Java

Java의 이해: 모듈의 응집도와 결합도 (모듈화)

💡모듈화 (Modularity) 모듈화를 통해 소프트웨어 규모를 여러 개의 조각으로 기능을 분리하여 복잡도가 감소하고, 효율적으로 소프트웨어를 관리할 수 있다. ⚬ 모듈 모듈은 모듈화를 통해 분리된 시스템의 기능으로, 프로그래밍 언어의 문법 구조로 정의된 컴포넌트를 의미한다. 서브루틴, 서브시스템, 프로그램, 작업 단위 등의 의미로 사용된다. 대부분 하나의 자바 파일에는 하나의 클래스가 있다. 그래서 모듈이라고 하면, 하나의 파일이라고 생각하면 되며, 메소드, 클래스, 패키지가 이에 해당한다. ⚬ 모듈화의 원칙 응집도와 결합도는 모듈을 평가하는 기준이 된다. 모듈 내 구성요소의 응집도(Cohesion)는 강하게(Strongly), 결합도(Coupling)은 느슨하게(Loosely) 하는 것이 좋다. 💡응..

Programming/Java

Java의 이해: 추상화, 캡슐화, 상속, 다형성

💡추상화 (Abstraction) 추상화는 관련 없는 사항을 은닉 또는 삭제하여 핵심적인 개념 또는 기능만을 간추려 내는 작업으로, 나에게 필요한 특징만을 표현하여 본질적 문제에 집중할 수 있도록 한다. ⚬ 소프트웨어 설계 소프트웨어 설계는 요구사항 분석 단계에서 산출된 요구사항명세서를 기반으로 어떻게 소프트웨어를 구현할 것인지 설계서를 통해 그 방법을 명시하는 과정이다. ⚬ 객체지향 설계 추상화 객체지향 프로그래밍(Object-Oriented Programming, OOP)은 추상화, 상속, 다형성, 캡슐화의 네 가지 특징을 가지며, 객체지향 프로그래밍 설계에서 추상화가 요구된다. 비슷한 특성을 가진 것을 그룹화하는 것을 객체지향 설계에서의 추상화라고 한다. 1. 과정 추상화 (Procedure Abs..

Programming/Java

Java의 이해: 클래스와 객체

💡클래스 (Class) 클래스는 멤버 변수 및 메서드를 포함하는 객체를 만들기 위한 코드 양식으로서, 인스턴스(메모리에 할당된 객체)를 생성하는 설계도(틀)라고 할 수 있다. 속성을 표현하는 변수인 필드(Field)와 기능을 표현하는 메서드(Method)로 구성된다. ⚬ 내부 클래스 (Inner Class / Non-Static Nested Class) 내부 클래스는 일반 클래스의 내부에 생성된다. 외부의 클래스는 new 인스턴스를 만들어 내부 클래스를 멤버 변수처럼 사용이 가능하다. 또한 내부 클래스는 외부에 있는 클래스의 자원을 직접 사용할 수 있다. ⚬ 중첩 클래스 (Nested Class) 중첩 클래스는 다른 클래스 내에 정의되어있는 클래스로, 클래스를 보조하는 용도로만 사용한다. 클래스를 묶어서..

Isaac-Christian
'Java' 태그의 글 목록 (17 Page)