본문 바로가기

ComputerScience

(72)
[Java] abstract vs interface 언제 써야하는가? 디자인패턴을 공부하다 보니 어떨 땐 abstract 클래스로, 어떨 땐 interface로 구현을 하는 것을 보았는데 이 둘의 차이를 명확히 잘 몰라서 알아보았습니다. Abstract Class와 Interface 추상클래스 (Abstract class) 자바에서는 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다. 여기서 추상 메소드란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 ..
[2023 AWSome Day] AWS를 통한 혁신 * 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 5: AWS와 혁신하기 사물 인터넷 IOT는 Internet of things의 약자 물리적 디바이스인 차량, 전자 기기나 장치, 소프트웨어 센서 및 이러한 물체가 서로 연결하여 데이터를 교환하는 상호 연결된 네트워크 정보의 원활하고 자율적인 흐름을 지원하고 디바이스 간 통신을 원활하게 하여 커넥티드 환경 구성 클라우드 기반 iot는 물리 세상과 가상 세상을 연결함 이러한 연결을 통해 디바이스와 데이터를 주고받을 수 있음 하지만 데이터를 대규모로 수집하려면 데이터를 효과적으로 수집해야하고 데이터를 삭제하고 정리하는 프로세스가 없으면 쓸모가 없어짐 당면한 세 가지 과제 1. 데이터 보안 -..
[2023 AWSome Day] AWS 클라우드 핵심 서비스 소개: 네트워킹, 보안 * 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 4: 네트워킹, 보안 Amazon Virtual Private Cloud (Amazon VPC) VPC란, AWS Cloud의 개인 네트워크 공간 VPC는 리전 범위의 서비스며 선택한 리전의 가용영역에 걸쳐 생성된다. ip 주소 범위 서브넷 생성, 라우팅, 인터넷 게이트웨이 구성 등 가상 네트워킹 환경을 사용자가 직접 제어 가능 서브넷 vpc, ip 주소 범위 내에 세그먼트 또는 파티션으로 볼 수 있으며 각각 워크로드 격리 퍼블릭 서브넷 공용 인터넷에서 직접 엑세스 가능, EC2는 외부 인터넷에 접근 가능해야 하므로 퍼블릭 서브넷 프라이빗 서브넷 공용 인터넷에 접근 불가능 Elcastic..
[2023 AWSome Day] AWS 클라우드 핵심 서비스 소개: 데이터베이스 * 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 3: 데이터베이스 비관리형 서비스와 관리형 서비스(aws) 비교 Amazon EC2 인스턴스에서 데이터베이스 소프트웨어를 호스팅 할 경우 운영체제 엑세스해야하는 세밀한 조정이 필요한 경우 직접 호스팅 가능 AWS가 지원하지 않는 상용 DB 소프트웨어 구축가능 AWS 데이터베이스 관리형 서비스를 이용하면 데이터베이스 프로비저닝, 백업과 복구 작업 실행, 보안 패치와 스토리지 및 사소한 버전 업데이트 같은 관리 작업은 AWS가 해결하므로 비즈니스와 애플리케이션에 집중 가능 목적별 데이터베이스 다양한 AWS DB는 다양한 데이터 모델을 지원하므로 확장성이 뛰어난 분산 애플리케이션을 쉽게 구축 ..
[2023 AWSome Day] AWS 클라우드 핵심 서비스 소개: 컴퓨팅, 스토리지 * 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 2. AWS 클라우드 핵심 서비스 소개: 컴퓨팅, 스토리지 컴퓨팅 Amazon Elastic Compute Cloud(Amazon EC2) 크기 조정 가능한 컴퓨팅 용량 컴퓨팅 리소스 완전 제어 새로운 서버 인스턴스 확보 및 부팅 시간 단축 이점 탄력성: 몇 분만에 프로비저닝 하고 시간 제어: 워크로드를 통해 인스턴스 시작 및 중지 유연성: 컴퓨팅 시간에만 컴퓨팅 시간에 대해서만 비용을 지불할 수 있음 AMI Amazon Machine Images로 AWS 마켓 플레이스에서 사용 가능한 하드웨어 및 소프트웨어를 종량 과금제를 통해 제공 ex) 워드프레스 애플리케이션을 사용하고 싶으면 ma..
[2023 AWSome Day] AWS 클라우드 소개 정리 * 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 1. AWS 클라우드 소개 클라우드란? 기존 온프레미스 환경은 데이터 센터를 직접 구축하고, 서버, 스토리지, 데이터 베이스, 애플리케이션, 네트워크 서비스를 직접 구축해야 했습니다. 클라우드는 IT 서비스를 사용한 만큼만 돈을 내는 서비스로, 개발자는 관리나 운영에 대한 신경을 쓸 필요가 없습니다. 클라우드는 구름, 즉 인터넷을 통해 원격지에 있는 IT 리소스를 사용하는 개념으로, 인프라를 하드웨어로만 생각하는 것이 아니라 소프트웨어적인 측면도 고려합니다. 클라우드 서비스의 주요 특징으로는 민첩성(온디맨드), 탄력성(빠른 규모 조정으로 수요에 대응), 비용 절감, 그리고 전 세계에 손쉽..
[SOLID] DIP: The Dependency-Inversion Principle * 이 글은Agile Software Development, Principles, Patterns, and Practices - Robert Martin 책 내용을 번역 및 요약하여 작성하였습니다. DIP: The Dependency-Inversion Principle a. High-level modules should not depend on low-level modules. Both should depend on abstractions. b. Abstractions should not depend on details. Details should depend on abstractions. 고수준 모듈이 저수준 모듈에 의존하는 경우 이러한 고수준 모듈을 다른 맥락에서 재사용하기가 매우 어려워집니다. 그러..
[SOLID] ISP: The Interface-Segregation Principle * 이 글은 Agile Software Development, Principles, Patterns, and Practices - Robert Martin 책 내용을 번역 및 요약하여 작성하였습니다. The Interface-Segregation Principle 이 원칙은 "두꺼운(fat)" 인터페이스의 단점에 대처하기 위한 원칙입니다. "두꺼운" 인터페이스를 가진 클래스란, 인터페이스가 그 인터페이스를 구현한 클래스와 연관성이 없는 클래스를 말합니다. ISP는 연관성이 없는 인터페이스가 필요한 객체가 있음을 인정하지만, 이러한 객체들에 대한 클라이언트가 하나의 클래스로 이해하면 안된다고 말합니다. 대신 클라이언트는 연관성 있는 인터페이스를 갖는 추상 기본 클래스를 알아야 합니다. Interface P..