맥북(macOS)에 깃(Git) 설치하기 MacOS에 깃을 설치하기 위해서는 먼저 homebrew를 설치해야 한다. 아래 사이트에 접속하면 homebrew를 설치할 수 있다. https://brew.sh/ Homebrew The Missing Package Manager for macOS (or Linux). brew.sh Install Homebrew의 명령어를 복사한 뒤 mac의 터미널 창에 붙여넣기해서 실행시켜주면 끝이다. 나는 sudo access를 하기 위해 비밀번호를 입력하라고 나와서 노트북 비밀번호를 입력해줬다. 이후 터미널에 brew --version 명령어를 이용해 homebrew가 잘 설치되었는지 확인해보자. 위와 같이 버전이 잘 뜨면 설치가 잘 된 것이다. brew install gi..
윈도우 10(Window 10) 깃(Git) 설치하기 1. Git 설치 파일 다운로드 윈도우 10에서 깃은 공식 홈페이지에서 다운로드할 수 있다. https://git-scm.com/downloads Git - Downloads Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp git-scm.com -..
버전 관리 시스템(Version Control System)이란? 버전 관리 시스템(이하 VCS)은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내 올 수 있는 시스템이다. 많은 개발자들이 소스 코드를 관리할 때 VCS를 사용하지만, 거의 모든 컴퓨터 파일의 버전을 관리할 수 있다. VCS를 사용하면 각 파일을 이전 상태로 되돌릴 수 있고, 프로젝트를 통째로 이전 상태로 되돌리거나 시간에 따라 수정 내용을 비교해 볼 수도 있다. 누가 문제를 일으켰는지 추적할 수 있고 누가 언제 만들어낸 이슈 인지도 알 수 있다. 또한 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있다. 따라서 VCS를 이용하면 위와 같은 장점을 누릴 수 있다. VCS는 다음과 같은 종류로 세분화 된다. ..
EAI란 무엇인가? EAI(Enterprise Application Integration)은 말 그대로 기업 애플리케이션 통합이다. EAI는 데이터를 교환하고 제공하는 서비스를 호출하여 기업 내 애플리케이션 사이의 통신을 제공하는 프로세스이다. EAI가 애플리케이션을 통합하고 서로 통신을 보장하면 비즈니스를 새롭고 혁신적인 방식으로 운영할 수 있다. 쉽게 말해, 기업 내의 다양한 애플리케이션들이 서로 상호 작용하기 쉽게 도와주는 솔루션이 EAI라고 생각하면 된다. EAI의 등장 배경 전통적인 비즈니스 환경에서 애플리케이션들은 별도의 비즈니스 단위 혹은 기능 내에서 서로 독립적으로 동작하고 사용하는 데이터를 잘 공유하지 않았다. 따라서 이러한 방식은 비즈니스 간의 상호연동이 쉽지 않고 많은 시간이 걸리며 ..
객체 지향 프로그래밍, 함수형 프로그래밍이란?프로그래밍 패러다임은 크게 두 가지 종류로 나눠볼 수 있다. 명령형(Imperative) 프로그래밍과 선언형(Declative) 프로그래밍. 객체 지향 프로그래밍(OOP)은 명령형 프로그래밍, 함수형 프로그래밍은 선언형 프로그래밍에 속한다. 객체 지향 프로그래밍은 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 프로그래밍 패러다임 중 하나이다. 함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 특히, 함수형 프로그래밍은 최근 들어 각광 받는 프로그래밍 패러다임이라고 할 수 있다. 개발 속도를 높여 생산성을 높이고, 가..
프로그래밍 패러다임 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고, 결정하는 역할을 한다. 이러한 프로그래밍 패러다임은 다음과 같이 크게 두 가지로 나눌 수 있다. 명령형 프로그래밍 : 프로그래밍의 상태와 그것을 변경시키는 구문의 관점에서의 연산을 설명 절차적 프로그래밍 : 프로시저(Procedure)를 이용해 순차적인 처리를 중요시 여기는 패러다임 객체 지향 프로그래밍 : 객체들의 집합으로 프로그램의 상호작용을 표현 선언형 프로그래밍 : 어떻게(How) 할 것인가 보다는 무엇(What)을 할 것인가를 표현 함수형 프로그래밍 : 순수 함수(Pure Function)를 조합하고 프로그램을 만드는 방식 함수형 프로그래밍은 초창기부터 소프트웨어 개발의..
명령형(Imperative) 프로그래밍명령형 프로그래밍이란 프로그램의 상태와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 패러다임의 일종이다. 쉽게 설명하자면, 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것이라고 볼 수 있다. 이러한 명령형 프로그래밍은 "how to solve it", 즉 어떻게 그것을 해결할 것인가에 관심이 있다. 거의 대부분의 컴퓨터 하드웨어는 명령형으로 구현된다. 거의 모든 컴퓨터 하드웨어들은 기계어를 실행하도록 설계되어 있는데, 보통 이것이 명령형으로 써져 있다. 포트란, ALGOL, C언어 등이 명령형 프로그래밍 언어의 일종이다. 선언형(Declarative) 프로그래밍선언형 프로그래밍은 보통 두 가지 뜻으로 통용된다. 첫 번째는 프로그램이 무엇을 해야 할..
백엔드 개발자가 꼭 읽었으면 하는 글 리스트 인터넷 세상에는 좋은 정보들이 정말 많다. 특히 네이버, 카카오, 라인 등 아주 우수한 개발자 분들이 정성들여 작성한 기술 블로그의 글에서는 많은 정보와 경험, 노하우를 얻을 수 있다. 내가 겪어보지 못한 트러블 슈팅을 대리로 경험할 수도 있고, 나의 진로를 결정하는데에 있어 도움이 될 수도 있다. 시간이 날때마다 유명 IT 기업들의 기술 블로그를 읽고 있는데, 한 번 읽었더라도 완전히 이해하지 못하거나 한 번더 읽고 싶은 글들을 북마크에 따로 저장해두곤 했다. 하지만 이게 너무 많이 쌓이다보니 이것을 정리할 필요성을 느꼈다. 이왕 정리하는김에, 많은 사람들이 같이 볼 수 있다면 좋겠다는 생각이 들어 내 기술블로그에 정리해본다. 카테고리를 나누어 정리하였고, ..
오류(error)와 예외(exception) 자바에서 오류(error)란 시스템이 종료되어야 할 수준의 수습하기 힘든 심각한 문제를 의미한다. 이러한 오류는 개발자가 미리 예측하여 처리하기 힘든 것이 대부분이기 때문에 오류에 대한 처리는 매우 힘들다. 반면 예외(exception)는 개발자가 구현한 로직에서 발생한 실수 혹은 사용자의 영향에 의해 발생하는 예측하고 방지할 수 있는 문제를 뜻한다. 따라서 자바 개발자는 예외 처리(Exception Handling)를 통해 예외를 원활하게 처리할 수 있어야 한다. 예외 처리(Exception Handling) 자바에서는 예외를 처리하기 위해 try / catch / finally 문을 사용할 수 있다. try{ // 예외를 처리하길 원하는 실행 코드; }ca..
제네릭(Generic)이란? 자바에서 ArrayList와 같이 꺽쇠 안에 클래스 타입이 명시되어있는 것을 확인할 수 있다. [그림 1]은 ArrayList의 내부이다. ArrayList처럼 'E'라고 표시된 것을 확인할 수 있다. ArrayList list = new ArrayList(); ArrayList list2 = new ArrayList(); 위와 같이 ArrayList에 저장할 타입을 Integer, String 등으로 지정할 수 있다. 이처럼 데이터의 타입을 일반화(Generalize)하는 것을 제네릭(Generic)이라고 할 수 있다. 이러한 제네릭은 클래스나 메서드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정할 수 있다. 따라서 컴파일 시에 미리 타입 검사(Type Check)를..
다양한 프로그래밍 언어 소스코드 품질평가 기업인 TIOBE index에서는 평점이나 선호도를 기반으로 프로그래밍 언어의 순위를 평가하고 발표한다. 티오베 인덱스에 따르면 2022년 6월 현재 1순위는 Python이 차지하고 있는 것을 확인할 수 있다. 그 뒤로 C언어, Java, C++ 등이 위치하고 있음을 확인할 수 있다. 이처럼 1위부터 4위까지를 차지하고 있는 C, C++, Java, Python에 대하여 비교, 분석해보자. ※ 본 포스팅을 읽기 전 참고하면 좋은 글들 : [프로그래밍 언어론] 객체 지향 프로그래밍(OOP : Object Oriented Programming)란? OOP의 장단점객체 지향 프로그래밍(OOP)과 객체(Object) 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어..
Map 컬렉션 클래스 JAVA의 Map 컬렉션 클래스는 Collection 인터페이스를 상속하진 않지만 Collection 자료구조를 이야기 할 때 빠지지 않는다. Map 클래스는 Map 인터페이스를 상속한다. Map 클래스는 중복을 허용하지 않는 Key 값과 그에 대응하는 중복이 허용되는 Value 값이 쌍을 이루어 저장되는 자료구조이다. 이때 Key 값은 Value를 찾기 위한 색인과 같은 역할을 한다. Map 클래스는 요소의 저장 순서를 유지하지 않는다. Key는 중복을 허용하지 않지만, Value는 중복을 허용한다. Map 대표적인 컬렉션 클래스 3가지에 대하여 알아보자. HashMap HashMap 클래스는 Map 클래스에서 가장 많이 사용되는 클래스 중 하나이다. HashMap 클래스는 해시 ..