분류 전체보기 243

[DesignPattern] Decorator Pattern

Decorator Pattern 데코레이터 패턴(Decorator pattern)이란 주어진 상황 및 용도에 따라 동적 혹은 정적으로 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있습니다. 여기서 동적으로 추가할 때는 보통 특정 객체를 결합하는 방식을 사용합니다. Class Diagram (클래스 다이어그램) Abstract Decorator (추상 데코레이터) 클래스 이 클래스는 Component 객체를 참조하는 참조 변수 (component)를 유지합니다. 모든 요청을 이 참조된 객체로 전달합니다 (component.operation()). 이로써 Decorator는 Component의 클라이언트에게 투명하게(보이지 않게) 동작합니다..

[DesignPattern] Observer Pattern

Publishers + Subscribers = Observer Pattern 옵저버 패턴(Observer Pattern)은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 1. Class Diagram (클래스 다이어그램) Subject 클래스는 의존 객체(dependent objects)의 상태를 직접적으로 업데이트하지 않습니다. 대신, Subject는 Observer 인터페이스의 메서드 update()를 참조하여 상태를 업데이트합니다. 이렇게 함으로써 Subject는 의존 객체의 상태가 어떻게 업데이트되는지에 독립적이게 됩니다. Observer1과 Observer2 클래스는 Observer ..

[Java] abstract vs interface 언제 써야하는가?

디자인패턴을 공부하다 보니 어떨 땐 abstract 클래스로, 어떨 땐 interface로 구현을 하는 것을 보았는데 이 둘의 차이를 명확히 잘 몰라서 알아보았습니다. Abstract Class와 Interface 추상클래스 (Abstract class) 자바에서는 하나 이상의 추상 메소드(abstract method)를 포함하는 클래스를 가리켜 추상 클래스(abstract class)라고 합니다. 여기서 추상 메소드란 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미합니다. 자바에서 추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위함입니다. 예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 ..

[DP] 프로그래머스 level 3 N 으로 표현 Python 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/42895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 N을 1개 사용해서 할 수 있는 표현은 5 N을 2개 사용해서 할 수 있는 표현은 55, 5+5, 5-5, 5*5, 5/5 N을 3개 사용해서 할 수 있는 표현은 555, 55 + 5, 55 - 5, 55 * 5, 55 / 5, 5 + 5 + 5, 5 - 5 - 5, 5 / 5 / 5, 5 * 5 * 5 일반화 해보면 n번 이어 붙여서 만든 수 1번 사용해서 표현한 수 집합 (사칙 연산..

Development/PS 2023.12.05

개발자 취업 팁 (2023년)

원문 https://www.clien.net/service/board/lecture/18452501 2023 프론트엔드 개발자 취업 팁 : 클리앙 글에 들어가기 앞서. 저는 현재 3년차 웹 프론트엔드 개발자입니다. 2023년은 제가 잘다니던 회사를 그만두고 개인의 자아실현과 안정된 직장을 얻기위해서 고군분투한 해였습니다. 처음에는 과 www.clien.net *이 글은 상단 링크의 글 내용을 요약하였습니다. 현재 구직 시장 상태 2020년 팬데믹으로 인하여 IT 스타트업수가 폭증하고 개발자들의 몸값과 수요가 폭증 2022년 이후 한국의 경제상황이 급격하게 안좋아지자 투자와 소비가 매우 하락하면서 기업들은 인력을 감축하거나 신규 인력을 더이상 충원하지 않는 상태가 됨 팬데믹때와 비교해서 “어서옵쇼” 하는 ..

Development/Tip 2023.12.05

[DFS] 프로그래머스 level 2 타켓넘버 Python 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 접근 모든 경우의 수를 구하는 것이므로 DFS/BFS +1, -1 각각 연산하면서 값이 target과 같으면 answer +1 코드 def solution(numbers, target): answer = 0 numbers_length = len(numbers) def dfs(idx, value): if idx == numbers_length: if target == value: nonloca..

Development/PS 2023.12.05

[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..

JetBrains가 조사한 2023년 개발자 에코시스템 현황

전 세계 26,348명 개발자 대상 조사 언어 가장 많이 사용된 프로그래밍 언어 : JavaScript > Python > HTML/CSS > SQL > Java > Shell > Typescript > C++ > C# 2024년 채택 가능성: Rust 10% > Go 9% > Kotlin/TypeScript 6% > Python 5% JavaScript 인기 소폭 하락 Rust에 대한 신뢰: 계속 성장 중 Objective-C는 확실히 역사의 뒤안길로 사라짐 소프트웨어 개발자 라이프 스타일 2023년에는 Scala, Go, Kotlin 개발자가 가장 높은 연봉을 받는 상위 3개 범주로 선정 2021년부터 설문조사 데이터에 따르면 여성 개발자의 비율은 개선의 움직임이 보이지 않음. 개발자 중 여성이 5%..

Development/Tip 2023.11.23

[2023 AWSome Day] AWS 클라우드 핵심 서비스 소개: 데이터베이스

* 이 글은 2023 11.16일 AWS에서 진행한 온라인 콘퍼런스인 AWSome Day를 듣고 정리하였습니다. 강연 3: 데이터베이스 비관리형 서비스와 관리형 서비스(aws) 비교 Amazon EC2 인스턴스에서 데이터베이스 소프트웨어를 호스팅 할 경우 운영체제 엑세스해야하는 세밀한 조정이 필요한 경우 직접 호스팅 가능 AWS가 지원하지 않는 상용 DB 소프트웨어 구축가능 AWS 데이터베이스 관리형 서비스를 이용하면 데이터베이스 프로비저닝, 백업과 복구 작업 실행, 보안 패치와 스토리지 및 사소한 버전 업데이트 같은 관리 작업은 AWS가 해결하므로 비즈니스와 애플리케이션에 집중 가능 목적별 데이터베이스 다양한 AWS DB는 다양한 데이터 모델을 지원하므로 확장성이 뛰어난 분산 애플리케이션을 쉽게 구축 ..