본문 바로가기

전체 글

(61)
Java의 패키지와 접근 지정자 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 자바의 패키지 자바에서 패키지란, 관련이 있는 .class파일 (컴파일된 것)을 저장하는 폴더입니다. 간단히 말해서, 자바에서는 폴더를 패키지라고 말합니다. 한 패키지에는 협업을 할 가능성이 높은 패키지들이 모여 있습니다. (그렇게 구성을 하게 됩니다.) 자바 응용 프로그램은 한 개 이상의 패키지로 구성되어 있으며, 프로젝트에서 기반이 되는 폴더인 src 이하 폴더로 구성되게 됩니다. package exam; public class PackageExam { } 위 예시처럼 소스코드 최 상단에 어떤 package에 속해있는지 표기하게 됩니다. 자바에서는 패키지가 다른데 이름이 같은 클래스가 존재할 수 있습니다. 그래서 ..
(디자인 패턴) Facade Pattern 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Facade Pattern 1. 종류 - Structural Pattern에 속한다. 2. 사용 의도 - 여러 subsystem을 위한 인터페이스가 있을 때 하나의 통합된 인터페이스를 제공하고자 할 때 높은 레벨의 인터페이스를 정의하여 사용하기 편리하게 한다 - 즉, 시스템이 복잡하여 외부에 노출 시 사용의 난이도나 의존성이 높아질 것 같을 때 단순화하기 위해 3. 구성도 출처: 학부 수업 높은 레벨의 인터페이스를 facade interface라고 한다. 4. 장점 1. 클라이언트에게 구현 숨김 - 클라이언트에서 다뤄야 할 객체 적어짐 -> 사용이 쉬워진다. 2. 클라이언트와 subsystem 간 의존성 낮춤 - 안쪽..
(디자인 패턴) Composite Pattern 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Composite Pattern 1. 종류 structural pattern의 한 종류이다. 2. 사용 의도 - 객체를 부분-전체 계층 구조로 나타낼 때 - 클라이언트는 leaf와 composite의 차이를 무시하고 component만 바라본 채 사용 가능하다. - composite와 recursive를 통한 타입의 일관적인(uniformly) 처리를 위해 사용한다. 3. 장점 - 상속한 모든 type을 일관적으로 처리할 수 있다. 4. 구조도 출처 : 학부 수업 여기서 주의해야 할 것은, 형광펜 친 부분인, composite객체의 doOperation부분은 반드시 고정되어야 합니다. 왜냐하면 composite는 자신..
(디자인 패턴) Adaptor 패턴 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Adaptor 프로그래머들이 가장 많이 사용하는 패턴 중 하나입니다. 1. 종류 - structural 패턴에 속합니다. 2. 사용 의도 (intent) - 클래스의 인터페이스를 클라이언트가 기대하는 다른 인터페이스로 변환합니다. - 호환되지 않는 인터페이스가 함께 작동할 수 있습니다. - 라이브러리를 사용하는데 내가 가진 인터페이스와 호환되지 않는다고 해서 라이브러리를 변경할 수는 없습니다. (외부 라이브러리는 보통 바이너리 형태로 제공) - 우리가 가진 인터페이스를 바꾸는 것도 리스크가 큽니다 (많은 곳에서 해당 인터페이스를 사용하고 있을 수 있기 때문) 3. 장점 - 호환되지 않는 인터페이스와 협력하는 재사용 가..
(디자인 패턴) Factory Method Pattern 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Factory Method Pattern 1. 분류 - Design Pattern 분류 중, Creational Pattern에 속합니다. 2. 사용의 의도(intent) - 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스(자료형)의 인스턴스를 생성할지는 서브클래스가 결정하도록 합니다. 3. 장점 - 애플리케이션별 클래스를 인스턴스화 하지 않음으로써 더욱 유연하고 재사용이 가능합니다. - 코드는 Product 클래스의 인터페이스만 다루지만 이 인터페이스를 지원하는 모든 Concrete Product클래스를 사용하는 것이 가능합니다. 4. 구성 요소 - Product, ConcreteProduct, Creato..
디자인 패턴 기본 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 정의와 사용 이유 소프트웨어 공학을 배우는 이유는 낮은 비용으로 높은 퀄리티의 소프트웨어를 만들기 위해서입니다. 소프트웨어 비용 절감과 생산성 증가, 퀄리티 증가를 위해서 재사용 가능한 소프트웨어 개발에 힘써야 하는데, 이때 사용할 수 있는 것들이 라이브러리, 디자인 패턴 등등이 있습니다. 디자인 패턴에 대해서 제대로 공부하고 활용한다면, 재사용성이 좋고 퀄리티가 좋은 소프트웨어를 만들 수 있겠습니다. 단, 주의할 점이 있다면 디자인 패턴을 아무 곳에나 갖다 붙인다고 좋은 소프트웨어를 만들 수 있는 게 아니라, 해당 디자인 패턴이 필요한 상황을 명확하게 인지하고 분석해야 적재적소에 활용하여 좋은 소프트웨어를 만들 수 ..
MySQL 트랜잭션 개념과 예제 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com 트랜잭션 트랜잭션 데이터베이스 트랜잭션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미한다. -위키백과- 간단히 말해서, 트랜잭션이란 데이터베이스에서 여러 명령이 묶인 작업의 한 단위를 의미합니다. 트랜잭션으로 명령들의 묶음을 한 단위로 만들어 단위만큼 한꺼번에 DB에 명령을 반영한다던가 단위만큼 한꺼번에 DB에서 명령을 취소한다던가 하는 행위가 가능합니다. 트랜잭션은 보장한다는 것은 ACID(원자성, 일관성, 격리성, 내구성)를 보장한다는 것입니다. ACID는 그 내용이 깊어 다음..
생성자 훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com Java의 생성자 생성자 생성자는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다. -위키백과- 위키백과에 정리가 너무 잘 되어있습니다. 생성자의 목적은, 객체의 필드를 초기화하는 데 있습니다. 그렇다면 초기화를 해주는 init함수라던지, 그런 것들로 초기화를 해도 되는데 왜 생성자를 사용할까요? 생성자를 사용하면, 생성과 동시에 초기화를 강제할 수 있습니다. 그러나 init함수를 사용하면, 강제할 수 없습니다. 그렇다면 초기화를 깜빡..