분류 전체보기

코딩 개발/Java

Java - UML 다이어그램

UML 다이어그램이란? 통합 모델링 언어를 사용하여 시스템 상호작용, 업무흐름, 시스템 구조, 컴포넌스 관계 등을 그린 도면입니다. UML다이어 그램을 사용하는 이유는 프로그래밍을 단순화시켜 표현하여 의사소통하기 좋고 또 대규모 프로젝트 구조의 로드맵을 만들거나 개발을 위한 시스템 구축에 기본을 마련합니다. 확실히 개발전에 다이어그램을 사용해서 구조가 어떻게 생겼나 생각하고 그려본 후 코딩을 하게 되면 훨씬 깔끔하고 빠르게 개발이 되는 것을 느꼈습니다. 그런데 다이어그램 종류가 이렇게 많을 줄은 몰랐네요. 자린이는 아직 Class Diagram밖에 모르는데... 일단 Class Diagram 부터 알아보죠. 아 그리고 Star UML이라는 것을 다운로드 하시면 제 글을 이해하는데 도움이 될 겁니다. ht..

코딩 개발/Java

Java - Data Type

변수의 타입 변수란? 값이 저장되어 있는 메모리 공간을 의미합니다. 자바에서 변수 타입은 기본적으로 기본형과 참조형으로 구분되는데, 기본형은 변수의 메모리 공간에 값 자체가 할당되는 것이며, 참조형은 변수의 메모리 공간에 해당 값이 저장된 주소가 저장됩니다. * 상수 한 번 값을 할당한 후 다른 값을 할당할 수 없는 변수를 의미합니다. 상수는 값의 재할당이 불가능하기 때문에 기본적으로 변수의 선언과 함께 값의 초기화가 이루어져야 합니다. 상수로 선언한기 위해서는 변수의 타입 앞에 final을 붙여주면 됩니다. 기본형(Primitive Type) 기본형 타입으로는 문자형(char), 숫자형(byte, short, int, long), 실수형(float, double), 논리형(boolean)이 있으며, 변..

코딩 개발/Java

Java - this

this란? 자바에서 this 는 인스턴스 자기 자신을 가리키는 키워드입니다. this 를 통해 클래스 메소드 및 생성자에서 자기 자신의 데이터를 업데이트하거나 조작할 수 있습니다. this 는 클래스를 기반으로 생성된 인스턴스를 가리키는 참조 라는 것입니다. 여기서 중요한 부분은 인스턴트를 가리키는 참조와 인스턴스 자체는 다르다는 점입니다. this가 생성자에 사용될 때가 가장 많은 것 같아서 생성자에서 사용되는 예로 살펴보겠습니다. 예시를 통한 이해 1. 클래스의 속성과 생성자/메소드의 매개변수의 이름이 같은 경우 public class Fruit { public String name; public String color; public double weight; public int count; pub..

코딩 개발/Java

Java - 캡슐화 (Encapsulation)

캡슐화(Encapsulation)란? 객체(Instance), Class의 내부 변수와 메소드를 하나로 패키징하는 것입니다. 객체에 저장된 속성과 메소드를 아무곳에서나 사용할 수 있다면 정상적인 객체라고 볼 수 없습니다. 정보를 은닉하여 객체의 내부 구현을 숨기면서 객체가 반드시 정해진 메소드를 통해 상호작용하도록 유도합니다. 객체의 응집도와 독립성을 높임으로써 객체의 모듈화를 지향합니다. 객체의 모듈화가 잘 이루어 져있으면 모듈 단위의 재사용이 매우 용이하여, 여러 로직에서 중복되는 코드를 모듈로 대체하면 모듈 내부의 소스만 수정하는 것으로 수정사항을 반영할 수 있습니다. 특징 1. 정보 은닉화 2. 사용자 편의 3. 유지보수 편의 캡슐화의 예제 Java에서는 접근제어자를 통해 객체의 캡슐화, 은닉화를..

코딩 개발/Java

Java - Heap & Stack 메모리 (feat. 예제를 통한 이해)

스택 영역 함수 호출 시에 사용되는 지역 변수와 매개 변수, 그리고 함수의 복귀 주소 등을 저장합니다. 스택은 후입선출(Last In First Out) 구조를 가지며, 함수 호출이 시작될 때는 그 함수에 필요한 공간이 스택의 최상단에 할당되며 함수 호출이 끝나면 그 공간이 해제됩니다. 이러한 과정을 스택 프레임(Stack Frame)이라고 합니다. 힙 영역 동적으로 메모리를 할당할 때 사용됩니다. 프로그램 실행 중에 필요한 메모리 공간을 할당하고 해제하는 데 사용됩니다. 이를 위해 malloc(), free()와 같은 함수를 사용할 수 있습니다. 힙 영역에 할당된 메모리는 전역적으로 접근 가능하며, 포인터를 사용하여 메모리를 할당하고 해제합니다. 스택과 힙은 모두 메모리 공간을 할당하고 해제하는 데 사..

코딩 개발/Java

Java - Cohesion & Coupling(응집도, 결합도)

응집도와 결합도를 알아가기 전 모듈에 대하여 알고 들어가 봅시다. 모듈(Module) 응집도와 결합도는 프로그램의 모듈과 모듈간의 관의 관계에 대한 개념입니다. 따라서 프로그램에 있어서 모듈의 개념을 이해하는 것이 먼저입니다. 모듈은 프로그램에서 하나의 기능을 수행하는 단위입니다. 프로그래밍 관련 용어들을 레고에 빗대어 이해해보도록 합니다. 프로그램 코드 한 줄 한 줄이 레고 블럭 하나라면, 모듈은 그 블럭들을 조립하여 만든 하나의 '기능'을 수행하는 덩어리라고 할 수 있습니다. 이러한 모듈들이 합쳐져서 하나의 큰 레고 작품이 탄생하는 것입니다. 즉 프로그램의 기능을 독립적인 부품으로 분리한 것이 모듈이라고 할 수 있다. 프로그램을 짤 때 모듈화 한다는 것은, 작은 기능 단위들을 모듈화하여 유지 보수와 ..

호소세
'분류 전체보기' 카테고리의 글 목록 (23 Page)