CS 7

CI/CD? Jenkins?

본 포스팅은 CI/CD와 Jenkins에 대해서 다루기 위해 포스팅을 한다. CI/CD란?지속적 통합(Continuous Integration) 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어공유 레포지토리에 통합히는 것을 의미한다.  그렇다면 CI가 필요한 환경에는 어떤 조건들이 있을까?지속적으로 서비스해야 하는 어플리케이션이나 현재 개발 중인 어플리케이션은기능 추가 시마다 형상관리 도구에 의해 commit 등을 날려 Repository에 버전 업데이트를 하는데, 이 때다수의 개발자가 한 팀으로 작업할 경우, 이 공유 레포지토리에 수많은 commit들이 쌓이게 된다.그럴 때마다, 기능별로 빌드/테스트/병합까지 하려면 상당히 번거롭지 않겠는가?이런 상황에서, 자동화된 빌드&테스트는..

CS 2024.09.01

Git Hub Organization 계정 만들기

본 포스팅은 Git Hub Organization 계정을 만들기 위해서 작성한 포스팅이다. Git Hub Organization?GitHub에서 제공하는 서비스중 하나로 팀단위 개발시 원본 소스코드의 저장을 개인 Github가 아닌 팀단위 Gihub로 사용하기 위해 조직(공용) GitHub 계정을 가르킨다. Git Hub Organization을 만들면 어떻게 형상관리가 될까?Git Hub Organization로 팀단위 형상관리시 여러가지 방법의 소스코드 관리가 있겠지만, 필자는 아래 그림과 같은 형식의 형상관리 설계를 하여 진행 하였다.위 그림과 같이 Upstream이 Organization Repository가 되는것이고, Origin이 개인 Remote Git Repository가 되는것이며 마지..

CS 2024.08.30

형상 관리란?

형상관리란?위키피디아에선 형상 관리에 대해서 이와 같이 정의 하고 있다. 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간이라고 한다. 역시 딱딱한 글자로 봤을땐 와닿지가 않는다. 그럼 이런 형상관리라는게 무엇이며? 왜 생겨 난 것인가에 대해서 이야기를 다뤄볼려고한다. 형상관리가 없던 시절....형상 관리가 없던 시절의 우리 개발자들은 소스코드를 어떻게 관리를 했을까? 생각해보자.분명 코드를 수정하면 수정전의 코드는 따로 어딘가 백업을 하여 관리하였을 것이다. 이유는 수정후 코드가 어떻게 문제가 발생이 되어 수정전의 코드로 돌아갈수도 있기 때문이다. 그럼 어떤식으로 백업을 하였을까? 아..

CS 2024.08.29

다형성

오늘은 객체지향프로그램의 꽃인 다형성에 대해서 알아보자. 1. 다형성다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. [출처 : 위키피디아] 쉽게 말하면, 다형성이란 하나의 객체에 여러 가지 타입을 대입할 수 있다는 것을 의미한다. 반대로, 단형성은 하나의 객체에 하나의 타입만 대응할 수 있습니다. 다형성을 설명하기 전에 단형성을 사용한 코드를 보겠습니다. 예를 들어, 자동차의 부모클래스가 있고, 각각이 상속받는 BMW와 Hyndai 클래스있어 해당 클래스들의 info()메소드를 main메소드에서 호출한다고 하면, 아래와 같은 코드일것이다.public class Car { private int door; priv..

CS 2024.06.28

클래스 다이어그램

오늘은 객체지향 프로그래밍 코딩전에 반드시 거쳐야하는 클래스 다이어그램에 대해서 알아보려고한다. 통상적으로 개발자들이 무언가 목표로 하는것을 개발하자고 한다면, 하기전에 항상 해당 프로그램에 대해 어떻게 만들고 어떤식으로 개발을 해야할지에 대한 방향성과 그것에 맞는 설계도를 작성하게 되는데 그중 한가지가 클래스 다이어그램이다. 그럼 이 클래스 다이어그램은 어떻게 작성하고 어떻게 읽으며, 클래스 다이어그램이란 정확히 무엇인가? 지금부터 낱낱이 파헤쳐 보자. 1. 클래스 다이어그램? 소프트웨어에서 사용되는 표준화된 범용 모델링 언어인 UML중 구조다이어그램에 해당하며, UML은 소프트웨어 집약 시스템의 시각적 모델을 만들기 위한 도안 표기법을 포함한다. 또한 객체지향 프로그래밍 소프트웨어 집약 시스템을 개발..

CS 2024.06.28

객체 vs 클래스

오늘은 객체와 클래스에 대해 포스팅 하고자 한다. 위 내용에 대해서 이야기를 하기전에 객체가 무엇인지 클래스가 무엇인지에 대해 먼저 알아보자. 1. 객체 ?자신 고유의 속성을 가지는 물리적, 추상적인 모든 대상을 일컫는다. 사람과 동물, 물품, 어떤 논리나 사상, 개념, 철학 등과 같이 눈으로 볼 수 있는 것부터 볼 수 없는 것까지 객체의 범주에 포함될 수 있다.  즉, 객체는 우리가 보고 느끼며 인지할 수 있는 모든 것을 의미한다. 객체는 클래스에 의해 정의되고 설계된 내용을 기반으로 생성된다. 객체는 속성과 행위를 가진다. 즉, 클래스를 통해 만들어진 객체가 실제로 사용할 수 있는 주체가 된다. 객체의 속성은 필드, 행위는 메서드에 해당한다. 2. 클래스 ?클래스란 객체를 정의한 설계도 또는 틀이라 ..

CS 2024.06.21

참조변수 vs 일반변수

오늘은 참조변수와 일반변수에 대해 포스팅 하고자 한다. 위 내용에 대해서 이야기를 하기전에 참조변수가 무엇인지 일반변수가 무엇인지에 대해 먼저 알아보자. 1. 일반변수?컴퓨터 프로그램에서 그 값이 일정하지 않고 상황에 따라 변경되는 값을 말하며 값을 저장하기 위해 크기가 일정한 메모리 공간을 할당받아 직접 저장한다. (Made in 위키원 + @)  위에서 이야기한 크기가 일정한 메모리 공간은 메모리의 Stack영역을 말한다. ※여기서 부터는 필자의 개인적인 의견이 들어가있어 다소 틀린 내용이 포함될수 있습니다. ※일반변수는 일반적으로 CPU아키텍처에서 정의한 기본자료형의에 대해서만 처리를 한다 라고 볼수있다. 대표적으로 Int, Double, Boolean, Float 등이 있다. 이러한 자료형들은 기..

CS 2024.06.21