Java 5

[소프트웨어공학/Software Engineering] 객체지향과 인터페이스

지난 글에서는 다형성에 대해 예제 코드와 함께 알아보았다.이번에는 객체지향에 관한 마지막 내용을 정리해보고자 한다. 객체지향의 장점1. 비용 절감재사용 가능한 컴포넌트를 활용하여 개발 시간 감소2. 소프트웨어 품질 향상캡슐화 + 다형성 을 통한 높은 모듈화시스템 간 결합도 감소3. 유지보수 용이성변경이 필요한 부분이 제한된다.확장과 수정이 쉽다.4. 설계와 구현의 연결성분석 → 설계 → 코드로 자연스럽게 이어진다.Abstract Class vs. InterfacePure Virtual Functionvirtual int getSalary() const = 0;구현이 없는 함수반드시 subclass에서 구현해야 함Abstract Class (C++)하나 이상의 pure virtual function 포함객..

[소프트웨어공학/Software Engineering] Polymorphism 다형성

지난 글에서 밝혔던 바와 같이 이번 시간에는 polymorphism에 대해서 알아보려고 한다. Polymorphism다형성이라고 하며, 하난의 메시지에 대해 서로 다른 객체가 서로 다른 방식으로 응답할 수 있는 기능이다.메시지를 보내는 객체는 어느 객체가 받을지 알 필요가 없다.one interface, multiple implementations연산 오버라이딩(상속) + 동적 바인딩 을 통해 구현된다.클래스 차원의 encapsulation(캡슐화)를 구현한 구조이다.superclass가 subclass들을 encapsulation 한다.메시지를 보내는 객체는 그 component 중에서 superclass의 interface만 알고 있으면 된다.내부의 상속 구조에 대해 전혀 알 필요가 없다. (누가 누..

[Android] 안드로이드 레이아웃(Layout)

이번 글에서는 안드로이드의 레이아웃과 그 속성에 대해 이야기해보고자 한다.먼저 레이아웃의 종류에 대해 알아보자.  위의 사진에서 볼 수 있듯이 레이아웃은 StackLayout, AbsolteLayout,RelativeLayout, GridLayout, ContentView, ScrollView, Frame 총 7개의 종류로 나눌 수 있다.이렇게 나누는 사람도 있고,Linear LayoutRelative LayoutConstraint LayoutTable LayoutFrame LayoutList ViewGrid ViewAbsolute LayoutWebViewScrollView위와 같이  종류를 나누는 사람도 있다.어떻게 종류를 나눠도 상관은 없다.이제 레이아웃의 속성에 대해 알아보자.TextView안드로이..

Android 2025.03.19

[Android] 안드로이드 매니페스트(Manifest)란?

Manifest란?Manifest는 앱의 기본 정보와 시스템 권한, 컴포넌트 등을 정의하는 필수적인 설정 파일이다.앱이 실행될 때 안드로이드 운영체제는 이 파일을 참고하여 앱의 구조와 동작 방식을 이해하고, 필요한 권한과 기능을 적절히 할당한다.주요 속성 : , , , , , ,  package, xmlns:androidallowBackup, icon, label, theme, usesCleartextTrafficname, exported, launchMode, screenOrientation, themename, exported, foregroundServiceTypename, enabled, exportedname (필요한 권한 설정)name, value (앱 설정 값) 태그속성매니페스트 파일의 최상..

Android 2025.03.18

[Android] 안드로이드 아키텍처(Architecture) 권장사항

안드로이드의 아키텍처에 관해 설명하기 전에 안드로이드에 대해 알아보자.안드로이드란?안드로이드는 구글에서 만든 스마트폰과 태블릿 PC 같은 터치스크린 모바일 장치용으로 디자인된 운영체제이다.수정된 리눅스 커널 버전을 비롯하여 오픈 소스 소프트웨어에 기반을 둔 모바일 운영체제이다. 안드로이드는 아래와 같은 구조를 가진다. 안드로이드는 리눅스 커널 위에서 동작하고, 자바와 코틀린을 통하여 개발한다. 그럼 안드로이드의 권장 아키텍처는 무엇일까?안드로이드는 MVVM 또는 MVI 패턴을 사용하고 Jetpack 라이브러리를 통하여 데이터 바인딩, UI 관리, 의존성 주입 등을 처리하는 것을 권장한다. 위와 같은 구조는 앱의 유지보수성과 확장성을 높이고, 모듈화된 레이어를 통하여 관심사를 분리하고 복잡성을 관리한다. ..

Android 2025.03.17