캡슐화(Encapsulation)란? 객체(Instance), Class의 내부 변수와 메소드를 하나로 패키징하는 것입니다. 객체에 저장된 속성과 메소드를 아무곳에서나 사용할 수 있다면 정상적인 객체라고 볼 수 없습니다. 정보를 은닉하여 객체의 내부 구현을 숨기면서 객체가 반드시 정해진 메소드를 통해 상호작용하도록 유도합니다. 객체의 응집도와 독립성을 높임으로써 객체의 모듈화를 지향합니다. 객체의 모듈화가 잘 이루어 져있으면 모듈 단위의 재사용이 매우 용이하여, 여러 로직에서 중복되는 코드를 모듈로 대체하면 모듈 내부의 소스만 수정하는 것으로 수정사항을 반영할 수 있습니다. 특징 1. 정보 은닉화 2. 사용자 편의 3. 유지보수 편의 캡슐화의 예제 Java에서는 접근제어자를 통해 객체의 캡슐화, 은닉화를..
스택 영역 함수 호출 시에 사용되는 지역 변수와 매개 변수, 그리고 함수의 복귀 주소 등을 저장합니다. 스택은 후입선출(Last In First Out) 구조를 가지며, 함수 호출이 시작될 때는 그 함수에 필요한 공간이 스택의 최상단에 할당되며 함수 호출이 끝나면 그 공간이 해제됩니다. 이러한 과정을 스택 프레임(Stack Frame)이라고 합니다. 힙 영역 동적으로 메모리를 할당할 때 사용됩니다. 프로그램 실행 중에 필요한 메모리 공간을 할당하고 해제하는 데 사용됩니다. 이를 위해 malloc(), free()와 같은 함수를 사용할 수 있습니다. 힙 영역에 할당된 메모리는 전역적으로 접근 가능하며, 포인터를 사용하여 메모리를 할당하고 해제합니다. 스택과 힙은 모두 메모리 공간을 할당하고 해제하는 데 사..
응집도와 결합도를 알아가기 전 모듈에 대하여 알고 들어가 봅시다. 모듈(Module) 응집도와 결합도는 프로그램의 모듈과 모듈간의 관의 관계에 대한 개념입니다. 따라서 프로그램에 있어서 모듈의 개념을 이해하는 것이 먼저입니다. 모듈은 프로그램에서 하나의 기능을 수행하는 단위입니다. 프로그래밍 관련 용어들을 레고에 빗대어 이해해보도록 합니다. 프로그램 코드 한 줄 한 줄이 레고 블럭 하나라면, 모듈은 그 블럭들을 조립하여 만든 하나의 '기능'을 수행하는 덩어리라고 할 수 있습니다. 이러한 모듈들이 합쳐져서 하나의 큰 레고 작품이 탄생하는 것입니다. 즉 프로그램의 기능을 독립적인 부품으로 분리한 것이 모듈이라고 할 수 있다. 프로그램을 짤 때 모듈화 한다는 것은, 작은 기능 단위들을 모듈화하여 유지 보수와 ..
OOP란? 두가지 설명이 있는데 더 이해가 잘 되는 것으로 이해해보도록 합시다. 개념 설명 1 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 개념 설명 2 우리가 실생활에서 쓰는 모든 것을 객체라 하며, 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말한다. 객체는 클래스라는 틀에서 생겨난 실체(instance)이다. 따라서 객체 지향 프로그램은 객체와 객체 간의 연결로 되어 있으며 각각의 객체 안에 자료구조(속성)..
IDE란? Integrated Development Environment 로 Java 개발을 위한 소프트웨어 개발 도구입니다. 이는 코드 작성, 디버깅, 테스트, 배포 등의 작업을 위해 필요한 다양한 기능을 제공합니다. Java IDE는 대부분 다음과 같은 기능을 제공합니다. 코드 편집: 코드 작성을 위한 기능으로, 코드 자동 완성, 문법 강조, 오류 감지 및 수정, *코드 스니펫* 등을 포함합니다. 디버깅: 코드 오류를 찾아 수정하는 작업을 위한 기능으로, 중단 점 설정, 변수 및 스택 추적, 로그 분석 등이 있습니다. 빌드 및 배포: 소스 코드를 컴파일하고 패키징하여 배포 파일을 생성하는 기능입니다. 버전 관리: 소스 코드 버전을 관리하는 기능으로, Git, SVN, Mercurial 등의 버전 관리..
신입 개발자라면 자고로 개념을 잘 알고 있어야한다고 생각합니다. 정말 기본 개념이지만 생각보다 머리속에 남지 않았던 경향이 있었습니다. 따라서 오늘 기본적인 이야기를 작성하면서 개념을 제 것으로 만드는 시간을 가져볼게요. 여러분도 보고 싶으시면 보세요. Java란? Java는 프로그래밍 언어입니다(당연하죠). 1995년 미국의 '썬마이크로시스템즈’라는 회사에서 개발한 객체지향 언어입니다.현재는 '썬마이크로시스템즈’가 엔터프라이즈용 데이터베이스로 유명한 '오라클’에 인수가 되었고, 그 이후 자바는 '오라클’사에 의해 배포되고 있습니다. Java의 가장 큰 특징 자바는 서로 다른 실행환경을 가진 시스템간에 프로그램을 옮겨 실행할 수 있는것을 말합니다. 자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운..