본문 바로가기

소프트웨어 공학4

[디자인패턴] 중복을 허용하지 않는 객체 생성 - 싱글톤 객체지향에서는 데이터 관리를 클래스로 하는 경우가 빈번한데 클래스로 생성한 인스턴스 객체가 중복으로 존재하면 안되고 단 1개만 생성되어야 하는 경우에 사용하는 디자인 패턴이다. 고전적인 방법이지만 어느 언어든간에 자주 사용하므로 한번 익혀두면 요긴하게 사용한다. 1. 싱글톤? 오직 하나의 객체만 생성할 수 있는 클래스를 구현하기에 Static 변수, 메서드를 활용하여 구현한다. 그러면 1번만 생성하고 Data 메모리 영역 중 static 공간에 적재되는 특징을 가지게 된다. Static의 특성은 아래 글을 참고하자 [Java] 정적 맴버 선언 - Static 키워드 평소에 모두가 알아야 할 정보를 사람들에게 일일히 말하기 힘드니 공통으로 볼 수 있는 공지사항에 기재하는 것처럼 공통으로 사용할 값과 기능은.. 2022. 11. 15.
[객체지향] 함수와 메서드 차이 절차지향에서 함수를 쓰다가 객체지향에서 메서드를 사용하다보면 함수나 메서드나 똑같은거 아닌가 하는 생각이 드는데 엄연히 이 둘은 다르다. 함수는 독립된 모듈처럼 어디서든 호출이 가능하지만 메서드는 클래스에 종속되어 있으므로 접근제어자 권한에 따라 호출 및 사용이 제한된다. 1. 함수 (function) 하나의 기능을 수행하는 일련의 코드로, 다른말로 서브루틴이라 한다. 구현된 함수는 호출하여 사용하고 호출된 함수가 종료되면 기존 제어코드로 복귀한다. 함수로 구현된 기능은 여러 곳에서 동일한 방식으로 호출하여 사용이 가능하다. 2. 함수 구현(정의)하기 함수의 선언부는 반환 값 이름, 매개 변수으로 구성된다. 내부는 코드, 반환 값, 함수 구역으로 구성된다. 함수 구성 형식 반환값 함수이름(매개 변수1, .. 2022. 11. 9.
[객체지향] 객체란 무엇인가? 객체지향 프로그래밍의 핵심인 객체는 처음에 들으면 개념이 매우 난해해서 사람마다 이해하는게 아예 달라서 같은 개발자끼리도 이해한 방식이 다르기에 같은 말을 하면서도 서로 왜 그렇게 설명하지 이해가 안된다고 토론배틀을 벌이는 모습을 심심찮게 볼 수 있다. 개인적으로 내가 이해한 객체의 개념을 정리해서 올려보았다. 1. 객체 (Obecjt) 사전적 정의로는 실제로 존재하는 것을 의미한다. 객체지향 프로그래밍의 객체는 처리의 대상이 되는 목적물로 유형과 무형을 구분하지 않는다. 이를 프로그래밍 학문의 관점으로 말하면, 속성과 그에 대한 연산방법을 함께 묶은 것이라 할 수 있다. 즉, 실존하는 물질, 장소, 생명체도 객체이고, 상상속에 존재하는 어떠한 것도 객체라 할 수 있다. 2. 객체의 특징 2.1 고유 이.. 2022. 11. 8.
[객체지향] 객체지향 프로그래밍 간단 개요 여러 프로그래밍 방법론 중에 현재 가장 많이 사용되는 방법론으로 객제지향 프로그래밍이 있는데 신입 개발자 면접에서 기본기 확인용으로 자주 물어보므로 꼭 숙지하는게 좋다. 1. 객체지향 프로그램이란 무엇인가? 정식 명칭은 Object-Oriented Programming 줄여서 OOP 라고 한다. 처리할 데이터를 추상화 하여 값과 기능을 가진 객체로 구현하고. 객체간의 상호작용으로 시스템을 구성하는 방법론이다. 1.1 객체지향은 왜 나왔는가? 초기의 소프트웨어는 기능이 단순해서 프로시저 중심으로 코드를 작성해도 큰 문제가 없었는데 SW가 발전하면서 개발 규모가 커지자 변수나 구조체 문법으로는 감당이 힘들어져 새로운 대안이 필요했다. 절차지향이 기능을 중심으로 ' 어떤 기능을 어떤 절차로 진행할 것인가 ' .. 2022. 11. 7.