본문 바로가기

Programming120

[Java] 상태 패턴(State Pattern)이란? 베하~ 안녕하세요! 블랙아웃입니다! 오늘은 객체 지향 디자인 패턴 중 하나인 상태 패턴에 대해 알아보겠습니다. 상태 패턴을 이용하면 객체의 내부 상태에 따라서 객체의 행동을 변경할 수 있게 되어 코드의 유연성과 확장성이 향상됩니다. 1. 상태 패턴 개념 상태 패턴은 객체가 내부 상태에 따라 여러 행동 중 하나를 선택할 수 있도록 하는 패턴입니다. 이를 통해 객체는 내부 상태가 바뀌어도 클래스를 바꾸지 않고도 다른 행동을 할 수 있습니다. 상태 패턴은 주로 유한 상태 머신(Finite State Machine, FSM)을 구현할 때 사용됩니다. 왜 상태 패턴이 필요한가요? 코드의 복잡성 감소: 상태에 따른 조건문이 많아지면 코드의 복잡성이 증가합니다. 상태 패턴은 상태를 객체로 분리함으로써 이러한 복잡성을.. 2023. 9. 27.
[Mybatis] resultMap과 resultType 베하! 안녕하세요 여러분 추석이 다가오고 있습니다! 9월은 잘 보내셨나요? 오늘은 Mybatis의 resultMap과 resultType의 차이점에 대해 알아보겠습니다. Mybatis 우선 Mybatis란, 자바 객체와 SQL 결과를 매핑하는 데 사용되는 강력한 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis를 사용하면 SQL 쿼리의 결과를 자바 객체로 변환하거나, 자바 객체를 SQL 파라미터로 전달할 수 있습니다. 이를 가능하게 하는 두 가지 중요한 설정 옵션은 resultMap과 resultType입니다. resultType resultType은 SQL 쿼리의 결과를 단일 자바 객체로 매핑하는 데 사용됩니다. 이 자바 객체는 일반적으로 POJO(Plain Old.. 2023. 9. 27.
[Java] 빌더 패턴(Builder Pattern)의 이해와 활용 안녕하세요, BTC 블랙아웃입니다! 오늘은 디자인 패턴 중에서 객체의 생성 패턴에 속하는 빌더 패턴(Builder Pattern)에 대해 알아보겠습니다. 빌더 패턴은 복잡한 객체의 생성을 간결하고 명확하게 할 수 있도록 도와줍니다. 1. 빌더 패턴이란? 빌더 패턴은 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 분리하여, 동일한 생성 절차에서 다른 표현 결과를 만들 수 있게 하는 디자인 패턴입니다. 2. 왜 빌더 패턴을 사용하나요? 문제 상황 생성자에 많은 인자가 있을 때, 인자의 순서를 혼동하기 쉽습니다. 또한, 시간이 지나면서 객체의 생성 방식이 변할 경우 생성자의 인자가 늘어나거나 줄어들 수 있어 유지 보수가 어렵습니다. 해결 방안 빌더 패턴은 객체 생성의 복잡성.. 2023. 9. 15.
정규표현식 안녕하세요. 오늘은 정규 표현식에 대해 알아 보겠습니다. 정규 표현식이란? 정규 표현식(Regular Expression, 이하 regex)은 문자열의 패턴을 찾거나 매칭하기 위한 식입니다. 이는 다양한 언어와 도구에서 사용되며, 복잡한 문자열 처리를 간단하게 해주는 강력한 도구로서 인기를 끌고 있습니다. 기본 문법 1. 메타문자 메타문자는 정규 표현식에서 특별한 의미를 가지는 문자입니다: . ^ $ * + ? { } [ ] \ | ( ) 2. 문자 클래스 '[ ]' 사이의 문자들과 매치를 의미합니다. 예를 들어, '[abc]'라면 'a', 'b', 'c' 중 하나와 매치됩니다. 3. 반복 * '*' 기호 바로 앞에 있는 문자가 0회 이상 반복될 때와 매치됩니다. 4. 반복 + '+' 기호 바로 앞에 있.. 2023. 9. 15.
Go 언어 기초 문법 이해하기 소개 베하~! Go 언어는 간결하면서도 효율적인 프로그래밍 언어로, 여러분의 개발 실력을 향상시키고 다양한 애플리케이션을 개발하는데 사용할 수 있습니다. 이번 글에서는 Go 언어의 기초 문법을 자세히 살펴보겠습니다. 패키지와 main 함수 Go 언어 프로그램은 패키지로 시작합니다. `main` 패키지는 실행 프로그램을 정의하며, 모든 Go 프로그램은 `main` 패키지로부터 시작합니다. 아래는 간단한 "Hello, World!" 프로그램의 예제입니다: package main import "fmt" func main() { fmt.Println("Hello, World!") } 변수와 상수 변수 선언 변수를 선언할 때 `var` 키워드를 사용합니다. Go 언어는 타입 추론을 지원하므로 변수 타입을 명시할 .. 2023. 9. 15.
Streamlit - Kaggle DALYs 데이터 분석 & 시각화 - 3 베하~ 안녕하세요! 현상수배범입니다. 지난 시간에는 streamlit을 DALYs 데이터의 각각의 변수(질병/재해) 간의 상관 관계 확인 및 시각화를 해보았습니다. 이번 시간에는 이번에는 좀 더 발전된 시각화를 위해 GeoPandas와 Pydeck 라이브러리를 활용해보려고 합니다. GeoPandas란? GeoPandas는 기본적으로 GeoDataFrame이라는 데이터 구조를 사용합니다. 이것은 Pandas의 DataFrame을 확장한 것으로, 각 행이 공간적 객체와 연관된 데이터를 가질 수 있습니다. 공간적 객체는 주로 포인트, 라인, 폴리곤 등을 의미합니다. 주요 기능 1. 공간 데이터 로딩: 다양한 형식의 공간 데이터 파일 (예: GeoJSON, Shapefile)을 쉽게 읽을 수 있습니다. 2. 데.. 2023. 9. 15.
[Java] 싱글톤 패턴의 활용과 한계 베하~ BTC 블랙아웃입니다! 지난 포스팅에서는 싱글톤 패턴의 구현 방법과 취약점 그리고 대응 방법에 대해 살펴봤습니다. 이번 포스팅에서는 싱글톤 패턴의 활용 사례, 그리고 그 한계에 대해 깊게 다뤄보고자 합니다. 지난 포스팅 https://btcd.tistory.com/1300 [Java] 싱글톤 패턴 구현하는 방법 베하~! BTC 블랙아웃입니다!! 이번 포스팅에서는 디자인 패턴 중에서도 생성 패턴에 속하는 싱글톤 패턴에 대해서 알아보겠습니다. 싱글톤 패턴이란 특정 클래스의 인스턴스가 프로그램 내에서 btcd.tistory.com https://btcd.tistory.com/1304 [Java]싱글톤 패턴 깨트리는 방법 및 대응 방법 베하~! BTC 블랙아웃입니다!! 지난 포스팅에서는 싱글톤 패턴의 구.. 2023. 9. 1.
[VUE3.JS] SFC 구조에 대해서 알아보자 베하~ 뉴진쓰 팀의 큰뉴진입니다~~! 저는 올해 초에 맛보기 느낌으로 리액트에 대해서 다뤄봤었는데요, VUE 프레임워크가 러닝 커브도 적고 기능 구현하기 좋다고 들어서 한번 체험해봤어요! 아무래도 VUE2가 아직도 많이 쓰이다 보니 VUE3는 공식 문서를 제외하곤 아직 정보가 부족한 것 같아요 ㅠㅠ 간단한 예제를 다루면서 SFC에 대해서 설명해드릴게요. SFC란? single file Component(싱글 파일 컴포넌트)의 약자로 하나의 *.vue 파일에서 컴포넌트의 템플릿, 로직 및 스타일을 모두 작성할 수 있는 구조입니다. /* HTML를 작성합니다. -> vue 내부 컴포넌트, import한 컴포넌트를 불러올 수 있습니다. [ex) , VUE는 javascript 기반으로 동작하기 때문에 HTML.. 2023. 9. 1.