전체 글 87

Design Pattern | 컴포지트 패턴(Composite Pattern)

오늘은 디자인 패턴 스터디 두번째 항목인 컴포지트 패턴에 대해 알아보도록 하겠습니다. 컴포지트 패턴(Composite Pattern) 객체 지향 디자인 패턴 중 하나로, 복합 객체를 구성하는 개별적인 객체들을 모두 동일한 방법으로 다룰 수 있게 하는 패턴입니다. 이 패턴은 개별 객체와 복합 객체(그룹화된 객체)를 동일하게 다룰 수 있도록 하여 클라이언트 코드가 객체 계층 구조를 일관되게 처리할 수 있도록 도와줍니다. 컴포지트 패턴은 트리 구조를 가진 객체들을 다루는데 유용합니다. 간단한 예시로, 파일 시스템을 생각해볼 수 있습니다. 파일 시스템에서 디렉터리와 파일을 구성하는 것과 같이, 여러개의 객체가 포함된 복합 객체를 처리할 때 이용할 수 있습니다. 이러한 패턴을 사용하는 이유는, 코드가 많으면, 코..

Design Pattern 2024.02.22

Java | 클래스, 객체, 메소드, 생성자(Class, Object, Method, Constructor)

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 21일 - https://velog.io/@yujin-17/TIL-18.-%ED%81%B4%EB%9E%98%EC%8A%A4%EC%99%80-%EA%B0%9D%EC%B2%B4 클래스(Class)란 객체를 생성하기 위한 템플릿입니다. 실제로 사용하기 위해서는 이 클래스를 기반으로 객체를 생성해야합니다. 이 과정을 인스턴스화라고 합니다. 객체는 모든 인스턴스를 대표하는 일반적인 용어입니다. 인스턴스는 특정 클래스로부터 생성된 객체입니다. 인스턴스화는 'new' 키워드를 사용하여 클래스의 생성자를 호출하여 객체를 생성하는 것입니다. // 클래스의 정의 Class MyClass { // 클래스의 멤버와 메서드 정의 가..

Java 2024.01.31

Algorithm 알고리즘이란?

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 15일 - https://velog.io/@yujin-17/TIL-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98 알고리즘이란? 알고리즘은 어떠한 문제를 해결하려는 방법과 절차입니다. 우리가 하려는 프로그래밍에 꼭 필요한 요소로 볼 수 있습니다. 이러한 알고리즘에는 조건이 있습니다. 입력 : 외부에서 제공되는 자료 출력 : 적어도 2개 이상의 서로 다른 경로가 출력 명확성 : 수행과정은 무엇을 하기 위한 것인지 명확하게 정의 유한성 : 알고리즘의 명령어 대로 수행하였을 때 처리된 후 종료 효율성 : 시공간적 효율성을 가져야하며, 명백하게 실행 가능 좋은 알고리즘이란? 밑의 4가지를 충족하는 ..

개발지식공간 2024.01.31

자료구조 | 배열, String Class

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 14일 - https://velog.io/@yujin-17/TIL-12.-%EB%B0%B0%EC%97%B4 배열? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 배열이라고 합니다. 배열의 선언과 생성 배열의 선언은 배열을 다루기 위한 참조변수의 선언과 같습니다. 선언방법? 타입[] 변수이름; 타입 변수이름[]; 배열의 생성은 실제 저장공간을 생성하는 것입니다. 타입[] 변수이름 = new 타입[길이] 배열의 시작 주소(메모리 주소)가 변수이름에 저장되어있습니다. 참조변수와 배열은 연결되어있고, 참조변수를 이용해 배열을 다룰 수 있습니다. class Arrays 3_1 { public static voi..

Data structure 2024.01.31

삭제한 Git stash 복구하기 (SourceTree 및 기타 툴에서도 가능한 방법)

회사에서 있었던 Git stash 삭제 이슈를 도와주다가 발견한 숨은 꿀팁을 공유하려고 합니다! 지금까지 했던 모든 개발을 모두 날려버릴 뻔했던 상황에 그 스태시를 날린 컴퓨터만 있다면 가능한 방법입니다! 1. 내가 개발중인 프로젝트 파일 위치에 찾아 들어갑니다. 기초 명령어 ls 현재 있는 위치의 리스트를 전부 보여줍니다. cd 폴더명 지금 있는 곳에서 폴더명으로 Change Directory를 합니다. (현재 있는 곳과 연결된 곳만 가능합니다.) cd .. 바로 이전 폴더로 이동합니다. 저는 현재 MacOS를 사용하고 있는데요! 기본 명령어는 모든 운영체제에서 거의 동일하게 사용되고 있으니 처음 터미널을 사용해 보더라도 당황하지 말고 사용해 보세요! 2. 프로젝트 파일 위치에서 아래 명령어를 입력합니..

개발지식공간 2024.01.31

Design Pattern | 추상 팩토리 패턴(Abstract Factory Pattern)

오늘은 디자인 패턴 스터디 첫번째 항목인 추상 팩토리 패턴에 대해 알아보도록 하겠습니다. 먼저, 디자인 패턴이란? 디자인 패턴이란, 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인 문제를 정리하여 상황에 따라 간편하게 적용할 수 있게 정리한 것입니다. 디자인 패턴을 공부하게되면, 가장 효과적이라고 알려진 방법들을 패턴화시켜, 단지 코드를 '재사용'하는 것이 아닌, 유지보수나 문서화를 개선, 클래스의 정확한 명세, 객체 간의 상호작용 또는 설계의 의도까지 명확하게 정의할 수 있습니다. 추상 팩토리 패턴(Abstract Factory Pattern) 추상 팩토리 패턴은 생성 패턴(Creational Pattern) 중 하나입니다. 생성 패턴은 인스턴스를 만드는 절차를 추상화 하는 패턴입니다. 생성 패턴..

Design Pattern 2024.01.30

Java | 반목문 while, do-while, 이름붙은 반복문

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 14일 - https://velog.io/@yujin-17/TIL-11.-%EC%9E%84%EC%9D%98%EC%9D%98-%EC%A0%95%EC%88%98-%EB%A7%8C%EB%93%A4%EA%B8%B0-while-break-continue while문 while (조건식) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 문장; } 실행순서 조건식 조건식이 참일 경우 문장 수행 조건식이 거짓이 될 때 까지 반복 do-while do { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 문장; } while (조건식) ; 실행순서 처음 한번은 무조건 실행 조건식 조건식이 참일 경우 문장 수행 조..

Java 2024.01.12

Java | 반복문

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 14일 - https://velog.io/@yujin-17/TIL-10.%EB%B0%98%EB%B3%B5%EB%AC%B8 for문 for (초기화; 조건식; 증감식) { 조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 문장; } 실행순서 초기화 조건식 조건식이 참일 경우 문장 수행 증감식 조건식이 거짓이 될 때 까지 반복 // 초기화 시 변수 2개 사용 가능합니다. // 단 타입이 같아야함! for(int i = 1, j = 100; i

Java 2024.01.12

Flowchart(흐름도)

velog에서 정리 한 것들을 블로그 이전하는 김에 다시 재정리를 하려고 한다. 2023년 2월 14일 - https://velog.io/@yujin-17/TIL-9.-Java-%EC%A1%B0%EA%B1%B4%EB%AC%B8%EA%B3%BC-%EB%B0%98%EB%B3%B5%EB%AC%B8 Java | 조건문 글과 분리해 Flowchart 글을 작성하려고 한다. Flowchart(흐름도) 어떠한 일처리 과정을 순서대로 간단한 기호화 도형으로 도식화한 것이다. 알고리즘이나 프로그램의 논리 혹은 흐름을 그림으로 표현하는 방법이다. Flowchart를 쉽게 그릴 수 있는 사이트입니다. Flowchart Maker & Online Diagram Software Flowchart Maker and Online ..

개발지식공간 2024.01.12