본문 바로가기

전체 글

(35)
AWS Summit Seoul 2023 Day 1 참가 후기 2023.05.03 학생 신분으로 AWS Summit Seoul 2023에 참여했다! 해당 컨퍼런스에 참석한 이유는, 최근에 Devops에 대해 공부하면서 해당 분야에 대해 더 깊이있는 지식을 얻고싶어 참석하였다. 또한, AWS에 기술들에 대한 최신 트렌드를 알고싶었다. 해당 컨퍼런스는 삼성역 코엑스 B홀에서 진행됐다, 아침 10시에 갔는데도 불구하고 긴 대기줄이 있었고 규모도 생각보다 컸다. 행사에 참여하기 위해서는, 이전에 발급받은 QR코드가 필수이다. QR코드를 통해서 자신의 명함을 발급받고 그 명함으로 출입 태그를 찍어서 입장할 수 있다. 행사장을 들어가면, 익숙한 기업들이 부스를 차려서 홍보를 하는 것을 볼 수 있다. 부스마다 다양한 행사를 하고 에코백, 추첨행사, 굿즈 등등을 받을 수 있어서 ..
[디자인 패턴] 옵저버(Observer) 패턴 정의 옵저버 패턴은 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때 마다 메서드 등을 통해 옵저버 목록에 있는 옵저버에게 변화를 알려주는 패턴이다. 객체와 주체가 분리되어 있을 수도 있고, 객체와 주체가 합쳐진 옵저버 패턴이 있을 수도 있다. 여기서 주체란, 객체의 상태 변화를 보고있는 관찰자이며, 옵저버들이란 이 객체의 상태 변화에 전달되는 메서드등을 기반으로 추가적인 변화 사항들이 생기는 객체들을 의미한다. 옵저버 패턴은 주로 이벤트 기반 시스템에 사용하며, MVC 패턴에도 많이 사용된다. 예를 들어, 모델에서 변경사항이 생겨 update() 메서드로 옵저버인 뷰에 알려주고 이를 기반으로 컨트롤러 등이 작동하는 방식이다. 옵저버 패턴의 장점 주체와 관찰자들 사이의 결합도를 낮출 수 있..
[디자인 패턴] 전략(Strategy) 패턴 정의 전략 패턴은, 정책 패턴이라고도 하며 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 전략이라고 부르는 캡슐화된 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴이다. 전략 패턴은 여러 알고리즘이나 행동 중에서 선택해야 할 때 유용하다. 클라이언트 객체는 일련의 전략 객체 중 하나를 선택하고, 선택된 전략 객체는 클라이언트에서 필요한 일을 수행한다. 예를 들어서, 동일한 작업을 수행하고 있는 여러 알고리즘이 있는 경우, 전략 패턴을 사용하여 이러한 알고리즘을 캡슐화하고 클라이언트 코드와 분리할 수 있다. 이렇게 하면 새로운 알고리즘을 추가하거나 기존 알고리즘을 변경할 때 클라이언트 코드를 변경할 필요가 없다. 전략 패턴 예시 자바코드 전략 패턴을 예시로 설명하기 위해, 간단..
[백준/구간 합] 10986 나머지 합 구하기 풀이 (JAVA) 문제 주소 https://www.acmicpc.net/problem/10986 유형 구간 합 풀이 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringT..
[디자인 패턴] Factory 패턴 정의 팩토리 패턴 은, 생성 패턴 중 하나로 객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자, 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다. 즉, 객체를 생성하는 인터페이스를 미리 정의하지만, 인스턴스를 만들 클래스의 결정은 서브 클래스 쪽에서 결정하는 패턴이다. 여러개의 서브 클래스를 가진 슈퍼 클래스가 있을때, 들어오는 인자에 따라서 하나의 자식클래스의 인스턴스를 반환해주는 방식이다. 팩토리 패턴은 클래스의 인스턴스를 만드는 시점 자체를 서브 클래스로 미루는 것이다. 팩토리 패턴을 요악해서 말하면, 객체 생성을 대신 수행해주는 공장이라고 표현할 수 있다. 팩토리 패턴 장점 - 상위 클래스..
[디자인 패턴] Singleton 패턴 정의 - 싱글톤 패턴은, 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴이다. 보통 데이터베이스 모듈에 많이 사용한다. - 하나의 인스턴스를 만들어 놓고, 해당 인스턴스를 다른 모듈들이 공유하며 사용하기 때문에, 인스턴스를 생성할 때 드는 비용이 줄어드는 장점이 있다. 자바에서의 싱글톤 패턴 자바로는 다음과 같이 중첩 클래스를 이용해서 만드는 것이 가장 대중적인 방법이다. class Singleton { private static class singleInstanceHolder { private static final Singleton INSTANCE = new Singleton(); } public static Singleton getInstance() { return singleInstanceHo..
[2021 카카오 채용연계형 인턴십] 표 편집 - 자바 문제 링크 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/81303?language=java 체감 난이도 🤔 상 유형 🗨️ 구현, LinkedList, Stack 풀이 방법 📝 처음에 실패했던 풀이 방법으로는, ArrayList와 일반 배열을 생성해서 따로 분리해서 진행했었다. 이렇게 구현하니까 테스트 케이스는 다 통과했는데, 정확성과 효율성 테스트에서 통과하지 못했었다. 잘 모르겠어서 아래의 링크를 참고해서 풀이를 진행했다. [프로그래머스]표 편집 - JAVA 해당 풀이는 LinkedList를 이용해서 풀었다. LinkedList는 삽입, 삭제에 대한 시간 복잡도가 O(1)이기 때문에 적합한 타입이다. 풀이 코드 import java.util..
[Oracle] Materialized View 정리 Materialized View란? 관계형 데이터베이스에서 view를 가상의 테이블이라고 한다. 따라서 인덱스를 잡을 수 없다. MVIEW라고 불리는 물리 뷰(구체화 뷰)의 용도는 그룹함수 min, max, sum, avg 등의 값을 미리 만들어 놓을 때 유용하며, user_segments에서 확인이 가능하다. 구체화 뷰는 기존 뷰와 비슷하지만, 차이가 나는 부분은 실제 데이터를 자신이 가지고 있으며, 원본 테이블에 INSERT, UPDATE, DELETE가 발생하면 새로운 데이터를 구체화된 뷰에 반영한다. REWRITE 힌트 구문에 구체화뷰가 인자로 와도 되고 안 와도 된다. 인자로 뷰 리스트를 주지 않는 경우 적절한 materialized view를 찾고 항상 비용과 관계없이 사용한다. Materia..