전체 글 49

오브젝트 - 기술서적 스터디 3단원-역할 책임 협력

객체지향 페러다임의 핵심 객체지향 패러다임의 핵심은 역할, 책임, 협력이다. 협력 : 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용 책임 : 협력에 참여하기 위해 수행하는 로직 역할 : 협력에서 수행하는 책임들의 모임 협력 어떤 객체가 다른객체에게 무엇인가를 요청하는 것 메시지 전송을 통해 객체들의 요청했다면, 메시지를 수신한 객체는 메서드를 실행해 요청에 응답 객체는 메시지 처리 방법을 스스로 선택한다 객체가 자율적인 존재가 되려면 내부 구현을 캡슐화 하는 것 객체의 행동을 결정하는 것은 객체가 참여하고 있는 협력 협력은 객체가 필요한 이유와 객체가 수행하는 행동의 동기를 제공한다 책임 협력에 참여하기 위해 객체가 수횅하는 행동 객체에 의해 정의되는 응집도 있는 행위의 집합 객체의 책임 하는 것..

오브젝트 - 기술서적 스터디 2단원-객체지향 프로그래밍

객체지향 프로그래밍을 위해 집중해야 할 것 (클래스가 아닌 객체에 초점) 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민한다.(클래스는 공통적인 상태와 행동을 공유하는 객체들을 추상화한 것) 클래스의 윤곽을 잡기 위해 어떤 객체들이 어떤 상태와 행동을 가지는지 먼저 결정 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다 객체들의 구체적인 윤곽이 잡히면 공통 특성과 상태를 가진 객체들을 타입으로 분류하고 이 타입을 기반으로 클래스를 구현한다 도메인의 구조를 따르는 프로그램 구조 도메인 : 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야 객체지향 패러다임은 초기단계부터 마지막단계까지 동일한 추상화 기법을 사용한다 요구사항과 프로그램을 객체라는..

오브젝트 - 기술서적 스터디 1단원-객체, 설계

소프트웨어 모듈이 가져야 하는 세 가지 기능 실행 중 제대로 동작 변경을 위해 존재하는 것 코드를 읽는 사람과 의사소통 하는 것 변경에 취약한 코드 변경에 취약한 코드는 의존성과 관련이 높다 의존성은 변경에 대한 영향을 암시 객체지향 설계는 서로 의존하면서 협력하는 객체들의 공동체를 구축하는 것 (기능을 구현하는 최소한의 의존성만 유지하고 불필요한 의존성은 제거) 객체 사이의 의존성이 과한 것을 결합도가 높다고 한다 설계의 목표는 객체 사이의 결합도를 낮춰 변경이 용이한 설계를 만드는 것 자율성을 높이자 개념적이나 물리적으로 객체 내부의 세부적인 사항을 감추는 것을 "캡슐화" 라고 한다 캡술화의 목적은 변경하기 쉬운 객체를 만드는 것 객체를 인터페이스와 구현으로 나누고 인터페이스만 공개하는 방법이 가장 ..

Offline에서 Docker 설치하기

저번에 yum repo를 오프라인에서 설치를 해보았다. 온라인 환경에서 컨테이너를 이미지로 만들어 오프라인 환경으로 옮긴 후 다시 컨테이너로 만들면 각종 프로그램들을 수월하게 사용할 수 있다고 생각한다. 이젠 docker를 설치해보자 (설치 환경은 RHEL 8.4) Docker docker는 왜 쓰는 걸까? docker는 실행 시점에 상관없이 구성 시점을 고정할 수 있다. 이것이 다른 서버 구성 도구와 가장 다른 부분이자 여러 서버를 똑같은 상태로 만들 수 있는 것이다. 넓게 보면 Docker는 TDD의 구조와 동일하다 TDD 순서 : 테스트 작성 → 테스트 실패 → 코드 작성/수정 → 테스트 성공 → 중복 코딩 리펙토링 → 반복 Docker 순서 : 도커파일 생성 → 도커이미지 생성 실패 → 도커파일 ..

인프라 2023.02.02

Offline에서 yum.repo local 설정

오프라인 환경에서 yum package를 사용하려고 한다. USB에 관련 파일을 담아 설정하는 방법으로 진행해보자 진행하기 전에 yum에 대해 먼저 알아본다. Yum yum yum이란 Yellodog Update Modified의 약자로 레드헷 계열의 리눅스 배포판에서 사용하는 패키지 설치관리 도구이다. 사용한다면 rpm명령어가 해결하지 못했던 패키지 의존성 문제를 해결할 수 있다. (참고로 발음은 냠냠 소리를 뜻하는 “염”이라고 한다…) 패키지 의존성 : A 패키지를 설치 시 B 패키지를 먼저 설치 해야하는 것. (필요한 패키지를 먼저 설치 다만, yum 명령어는 패키지 저장소 서버로 부터 다운 받아 설치하게 되므로 인터넷이 연결되어 있을 때 빛을 발한다. 하지만 현 상황은 offline에서 사용해야 ..

인프라 2023.02.01

Offline PC 에 RHEL 8.4 설치하기

금융회사들과 일을 하다보면 회사 내부망에서 일을 해야할 상황이 많다. 이러한 상황을 대비해서 오프라인 PC에 OS 설치해보고 사용 연습을 해보려한다. RHEL Red Hat Enterprise Linux의 약자로 상용시장을 위해 개발한 사용 오픈 소스 Linux 배포판이다. 설치방법이 여러가지가 있지만, 이 글에서는 백지상태의 PC에서 OS를 설치하는 방법을 소개한다. 설치 방법 RHEL iso 다운로드 Red Hat Enterprise Linux | Red Hat Developer A stable, proven foundation that’s versatile enough for rolling out new applications, virtualizing environments, and creating..

인프라 2023.01.27

CI/CD

Jenkins와 Docker 등 CI/CD Tool만 알고 개념적인 부분에서는 지식이 부족한 거 같아 한번 정리하면서 공부해 보려한다. CI/CD 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 제공하는 방법이다. 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제를 해결하기 위한 좋은 방법이다. CI (Continuous Integration) 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다. 제대로 구현되면 코드의 새로운 변경 사항이 정기적으로 빌드 및 테스트를 거쳐 공유 repository에 병합된다. 여러 개발자가 동시에 코드작업을 해도 충돌을 피할 수 있다. CI의 핵심 목표 버그를 신속하게 찾아 해결 소프트웨어의 품질 개선 새로운 업데이트의 검증 및 릴리즈 시간..

인프라 2023.01.10

ETL/ELT

ETL이란? E(Extract) 추출, T(Transform) 변환, L(Load) 적제를 뜻하며 다양한 소스의 데이터를 대상 데이터 저장소에 결합하는 과정입니다. - AWS ETL 설명 추출, 변환, 로드(ETL)는 데이터 기반 조직이 여러 소스에서 데이터를 수집한 후 검색, 보고, 분석, 의사 결정을 지원하기 위해 가져오는 데 사용하는 프로세스입니다. - Oracle ETL 설명 ETL의 작동 ETL은 데이터를 소스 시스템에서 대상 시스템으로 정기적으로 이동하는 방식으로 작동 소스 데이터베이스에서 관련 데이터 추출 데이터를 식별하고 해당 소스에서 복사하여 데이터를 대상 데이터 저장소로 전송 (스테이징 영역) 분석에 더 적합한 형식으로 데이터 변환 추출된 데이터는 원래 형식의 원시 데이터이므로 저장소에..

IT자료실 2023.01.04

취업 회고

패스트 캠퍼스 수료 3월 말부터 시작된 패스트캠퍼스 학원과정을 10월 27자로 수료하였다. 마지막 파이널 프로젝트를 몰아치며 마무리한 기분이라 벌써 끝이난건지 내가 많이 부족한데 이대로 취업을 해도 되는 건지 싶은 마음이 많이 들었다. 그래도 끝이 난 이상 마음을 다 잡고 취업 준비를 해보자!라고 마음먹었지만 현실은 번아웃이 와버린 상황이었다. 2개월의 준비과정 수료 후 2주 정도는 학원 다니던 친구들과 교류도 하고 자소서도 서로 읽어주며 자소서와 이력서 작성에 몰두하였다. 무슨 자신감인지는 모르겠으나 취업에 대한 두려움은 없었다. 다만 7개월 간 쉼 없이 달려온 것에 대한 번아웃이 와버린 상황이었다. 시간이 해결해 주리라는 마음으로 계획했던 여행도 다녀오고 정신 회복을 위해 푹 쉬고 나서 12월 초 2..

휴식처 2023.01.04

리플렉션 .class 클래스

스프링 강의를 진행 중 클래스이름.class 라는 항목이 자주 등장하여 내용 정리와 이해를하기 위해 작성한다. 리플렉션 리플렉션은 구체적인 클래스 타입을 알지 못해도 해당 클래스의 메소드, 타입, 필드들을 접근할 수 있게 해주는 자바API이다. Class 클래스 리플렉션의 기초가 되는 클래스이다. 자바에 사용되는 클래스에 대한 구조를 가지고 있는 class이다. (클래스의 구조 자체를 하나의 클래스로 표현해 놓은 클래스) 사용법 Class.forName("패키지 전체 경로") or 클래스 이름.class 위와 같은 형태로 호출하면 클래스 정보를 담은 class 클래스가 반환된다. 참조 블로그 : https://joont.tistory.com/165

IT자료실/Java 2022.05.31