전체 글 51

개발용어 - 스트림이란? (Stream)

스트림이라는 용어는 여러분이 어떤 언어를 하든간에 공통적으로 들을수 있는 용어입니다. 그렇다면 이 스트림이라는 용어는 무엇을 의미하는건지 알아보겠습니다. ​ Stream 위키백과에서 Stream에 대한 정의는 아래와 같이 내리고 있습니다. ​컴퓨터 처리 환경에서 스트림은 시간이 지남에 따라 사용할 수 있게 되는 일련의 데이터 요소를 가리키는 수많은 방식에서 쓰인다. 어... 무슨소린지 이해가 되시나요? 잘 이해가 안될겁니다. ​ 조금더 쉽게 접근을 해야할 필요가 있습니다. ​ Stream을 번역기에 돌려보면 다음과 같은 의미가 나옵니다. ​ 개울의 특성은 어떤가요? 우선 물이 존재합니다. ​ 그럼 그 물이 어떻게 되고 있나요? "흐르고" 있지 않나요? 흐른다는건 어떤걸까요? 물이 연속해서 어딘가로 향한다..

개발관련/용어 2023.06.30

개발용어 - API란 뭔가요?

API는 개발하는데 있어 필수적으로 사용이 되고, 모든 개발자들이 사용을 하고 있습니다. 하지만 API가 뭐야? 라고 질문을 했을때 다들 두리뭉실 하기만 말하기만 하고 간단하고 명확하게 설명하는 개발자들이 몇 없었던거 같습니다. ​ 즉 API가 뭔지는 잘 모르지만 개발자 본인도 모르게 잘 쓰고 있다는 것이죠... ​ 오늘 이시간에는 API가 뭔지 알아보는 시간을 가지겠습니다. API란 무엇인가? 위키백과에서는 API의 정의를 다음과 같이 내리고 있습니다. API(Apllication Programing Interface)는 컴퓨터나 컴퓨터 프로그램 사이의 연결을 의미한다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. https://ko.wikipedia.org/wiki/A..

개발관련/용어 2023.06.29

SOLID 원칙이란? (객체지향 5대원칙)

여러분이 객체지향 5대원칙에 대해 공부를 하다보면 듣게될 용어중 하나입니다. SOLID.. 이름만 들었을때 뭔가 강해보이는 이름이다.. 객체지향 5대원칙? 객체지향 5대원칙은 SRP(단일책임 원칙), OCP (개방 - 폐쇄 원칙), LSP (리스코프 치환 원칙) , DIP (의존 역전 원칙), ISP (인터페이스 분리 원칙) 을 일컫는 말입니다. 위 5가지의 앞자를 따서 SOLID 원칙이라고 부릅니다. ​ 위 원칙을 적용하면 유지보수나 확장이 쉬운 소프트웨어를 만들수가 있습니다.​ ​ Single Responsibility Principle (단일 책임 원칙) 하나의 클래스는 단 하나의 책임만을 가져야 합니다. 클래스를 변경하는 이유는 단 하나여야 합니다. 위 내용을 지키지 않을시, 한 책임의 변경에 의..

개발관련/용어 2023.06.29

아키텍처패턴과 디자인 패턴 차이

많은 분들이 아키텍처패턴과 디자인패턴을 혼동하고 계셔서 이렇게 포스팅을 하게 되었습니다. ​ 디자인 패턴? 위키백과에서는 디자인 패턴을 다음과 같이 정의하고 있습니다. 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용가능한 해결책이다. 소스나 기계 코드로 바로 전홚될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데 쓰이는 서술이나 탬플릿 입니다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화 된 가장 좋은 관행입니다. ​ https://ko.wikipedia.org/wiki/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%94..

개발관련/용어 2023.06.29

객체지향 프로그래밍이란?

이번시간에는 객체지향 프로그래밍이 뭔지 잠시 간략하게 설명하고 가겠습니다. 객체지향 프로그래밍? ​ 객체 지향 프로그래밍에 대해 짧게 설명해 보세요 라고 누군가가 질문하면 답변하기 어려워 지는것이 사실입니다. 괜히 주저리 주저리 말이 길어지기도 하고요.. 하지만 객체지향 프로그래밍은 그냥 딱 한줄로 요약이 가능합니다. ​ 그전에 먼저 객체란 저번에 뭐라고 했나요? https://blog.naver.com/cjy2103/222736023788 자바(Java) 이론 - 객체와 인스턴스 차이 오늘은 객체와 인스턴스 차이에 대해 알아보도록 하겠습니다. 우선 객체에 대해 잠깐 알아보도록 할까요? ... blog.naver.com 물리적으로 존재하거나 추상적으로 생각할수 있는것 즉 현실세계에 존재하는 개념들 중 소..

개발관련/용어 2023.06.29

안정정렬, 불안정 정렬, 제자리 알고리즘 / Stable Sort, Unstable Sort, In-place Algorithm

정렬 알고리즘을 공부하다보면 나오는 용어들입니다. 이 정렬 알고리즘의 특징은 Stable sort이고, in-place 알고리즘을 가진다 라고 말이죠.. 그렇다면 이 두 용어의 뜻은 무엇일까요?​​ ​ Stable Sort(안정 정렬) / UnStable Sort(불안정 정렬) Stable Sort가 뭘까요? 번역하면 안정적인 정렬... 안정적... 뭐가 안정적이란 말일까요?​​ 안정정렬이란 중복된 키를 순서대로 정렬하는 알고리즘을 말합니다. ​ 예를들어 아래와 같은 배열이 있다고 생각합시다. 이 배열에서는 중복된 숫자 1과 4가 존재합니다. 좀더 시각적으로 확인하기 위해 (1) (2) 이런식으로 어떤게 먼저 나온건지 구분을 하도록 하겠습니다. 이 배열을 정렬하였을때 ​이런식으로 나온다면 Stable S..

개발관련/용어 2023.06.29

시간복잡도, 공간복잡도

코딩을 하디보면 이 코드가 효율적인 코드인지 비효율적인 코드인지 고민을 하게 되는 순간이 오게 될것입니다. 그렇다면 효율적인 코드는 어떤것이며 어떤게 효율의 기준이 되는것일까요? 시간복잡도와 공간복잡도는 효율적인 코드의 기준점 어렵게 생각하지 마시고 한번 일상생활을 생각해 봅시다. 여러분이 살면서 ~~의 효율을 높여라 라는 말을 들어보셨을 겁니다. 알바를 하든, 작업을 하든, 공부를 하든 말이죠 ​ 이런 일들에서의 효율은 무엇을 말하는걸까요? ​ 효율에는 두가지 종류가 있죠 일을 빨리 끝낼수 있는 시간에 대한 효율, 적은 자원을 투자하고 높은 결과를 이끌어 내는 자원에 대한 효율 이렇게 말입니다. ​ 프로그래밍 세계에서의 효율 역시 현실세계의 효율과 의미가 같다고 보시면 됩니다. 시간복잡도 시간 복잡도는..

개발관련/용어 2023.06.28

스펙트로그램(Spectrogram)?

음향 분석 관련 작업을 하다보면 스펙트로그램 이라는 용어를 접하게 됩니다. ​ 그렇다면 이 스펙트로그램은 무엇을 의미하는 것일까요? 스펙트로그램 스펙트로그램을 알아보기 전 파형 (waveform) 과 스펙트럼(Spectrum) 이라는것에 대해 알아보겠습니다. waveform(파형) 여기서 x축은 시간, y축은 진폭을 의미합니다. Waveform은 물리적 매체나 추상적 표현에서 움직이는 파형을 나타 낸다 라고 보시면 됩니다. sepctrum(스펙트럼) 다음으로 스펙트럼이라는 용어입니다. x축이 주파수, y축이 스펙트럼 진폭을 의미합니다. ​ 아마 스펙트럼은 아래와 같은 이미지로 여러분이 많이 접해보셨을 겁니다. 자 그렇다면 스펙토그램은 대체 무엇을 의미할까요? ​ ​ 위키백과에서는 스펙트로그램을 다음과 같..

개발관련/용어 2023.06.28

개발용어 관련 - 형상관리(Configuration Management) / CVS, SVN, Git

형상관리? 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학습 분야의 형태로 넓히는 근간을 이야기한다. https://ko.wikipedia.org/wiki/%EA%B5%AC%EC%84%B1_%EA%B4%80%EB%A6%AC 구성 관리 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 소프트웨어 구성 관리(영어: Software Configuration Management) 또는 형상 관리는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적 ko.wikipedia.org 음.. 이것만 들어서는 왜 형상관리가 필요한지.. 정확히 형상관리가 무엇인지. 어떻게 쓰는지 잘 ..

개발관련/용어 2023.06.28

개발 용어 관련 - Dry Code / Wet Code?

최근에 재미있는 약자를 알게 되어서 소개해 볼까 합니다. ​ 바로 Dry 와 Wet입니다. ​ Dry와 Wet ​ 먼저 Dry는 Don't Repeat Yourself의 약자입니다. 뜻을 번역하면 자기 자신을 반복하지 말라는 소리죠. 즉 코드의 반복을 피하 라라는 소리입니다. ​ Wet은 Wrtie Everything Twice의 약자입니다. 모든 코드를 두 번씩 쓰게 되는 코드 반복성에 대한 풍자의 말입니다. Wase Everyone's Time으로도 쓰이기도 하죠 반복되어 정리되지 않은 코드는 접하는 모든 사람의 시간을 낭비하게 된다는 뜻입니다. ​ Be Dry나 Don't Be Wet 둘 다 코드의 반복을 피하라는 소리입니다. Dry 하게 코드를 작성하세요 가끔가다 선임급들이 초보 개발자들에게 많이..

개발관련/용어 2023.06.27