본문 바로가기

분류 전체보기254

[Git] Git을 이용한 협업: Fork 부터 Pull Request 까지 들어가기 전에Git은 쉽고 효율적인 버전 관리를 통해 커뮤니티(Github)에 공유된 Open Source 프로젝트 또는 개인 및 단체의 Private Source에 접근, 생성, 수정 할 수 있도록 하는 도구이다. 이 포스트에서는 Github에 업로드 되어있는 source에 접근해 작업하고 Pull Request 하기까지 타인과 협업하면서 프로젝트를 개발하는 일반적인 협업 전략과 그 방법에 대해 알아본다.이 포스트는 Git 명령어 add, commit, push, merge, fetch를 어느정도 이해하고 있다고 가정합니다. One of the Git Flow 아래 다이어그램은 Git을 활용한 여러가지 협업 전략 중 하나이다. 이와같은 Git을 활용한 협업의 순서도를 Git Flow 라고 한다. Git.. 2024. 9. 21.
[Git] Git 브랜치 전략 (feat. Git Flow) 브랜치브랜치란 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 개발자들이 협업을 진행할 때 동일한 소스코드를 함께 공유하고 다룬다. 여기서 어떤 사람은 버그를 수정하고, 어떤 사람을 기능을 개발하기도 한다. 동일한 코드를 여러 사람이 다른 작업을 할 때 서로 다른 버전의 코드가 만들어진다. 이 때 동시에 여러 작업을 할 수 있도록 Branch(브랜치)를 사용한다. 분리된 작업 영역에서 수정을 하고 나중에 원래 버전과 비교해서 하나의 새로운 버전을 만든다. 이러한 브랜치 전략들을 정리했다.Git 브랜치 전략그런데, 이런 좋은 브랜치도 규칙 없이 마구잡이로 사용하면 혼란을 불러올 수 있다. .. 2024. 9. 21.
함수형 프로그래밍 명령형 프로그래밍 VS 선언형 프로그래밍명령형 프로그래밍프로그래밍의 상태와 상태를 변경시키는 구문의 관점으로 접근하는 프로그래밍 방식.명령형 프로그래밍은 컴퓨터가 실행할 명령들을 실행 순서대로 구현해야 한다.대부분의 객체 지향 프로그래밍 언어가 명령형 프로그래밍 언어이다. 알고리즘 처리 작업에 적합한 언어이다.절차지향 프로그래밍, 객체지향 프로그래밍이 이에 속한다. 예시) point를 얻기 위해 실행할 명령들을 순서대로 구현fun getPoint(customer: Customer): Int { for (i in 0..customers.size) { val c = customers[i] if (customer == c) { return c.point .. 2024. 6. 16.
[OOP] 객체지향의 4대 특징 - 캡슐화, 추상화, 상속, 다형성 캡슐화연관된 데이터(변수)와 기능(메소드)을 하나로 묶고, 불필요한 요소를 외부에 노출되지 않도록 설계하는 방식을 뜻한다. 자바에서는 접근 제어자(public, private, default, protected)를 통해 캡슐화를 구현할 수 있다.class Student { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { .. 2024. 6. 10.
[Java] 기본타입 vs 참조타입 기본 타입 vs. 참조 타입자바의 데이터 타입에는 크게 기본 타입과 참조 타입이 있다. 기본 타입 (primitive type)정수 타입, 실수 타입, 논리 타입정수, 실수, 문자, 논리 리터럴을 저장하는 타입이다.기본 타입은 변수에 실제 값(리터럴)을 저장한다.int age = 24; 참조 타입 (reference type)배열, 열거, 클래스, 인터페이스객체(Object)의 번지를 참조하는 타입이다.참조 타입은 변수에 객체의 번지(객체가 생성될 때 갖는 주소값)를 저장한다.변수는 번지를 통해 객체를 참조한다.String hobby = "공부"; 차이점모든 변수는 스택 영역에 저장된다.단, 타입에 따라 데이터가 생성되고, 저장되는 위치는 다르다.◾️ 기본 타입 변수: 스택 영역에 변수가 생성되고, 변수.. 2024. 6. 10.
[Java] 추상 클래스 vs 인터페이스 추상 클래스(Abstract Class)개념abstract 키워드로 선언된 클래스최소 한 개의 추상 메서드를 포함하는 경우 반드시 추상 클래스로 선언해야한다.그러나 추상 메서드가 하나도 없는 경우라도 추상 클래스로 선언할 수 있다. 추상 클래스의 구현서브 클래스에서 슈퍼클래스의 모든 추상 메서드를 오버라이딩하여 실행가능한 코드로 구현한다. 추상 클래스의 목적객체(인스턴스)를 생성하기 위함이 아니며, 상속을 위한 부모 클래스로 활용하기 위한 것이다.여러 클래스의 공통된 부분을 추상화(추상 메서드)하여 상속받는 클래스에게 구현을 강제화하기 위한 것이다. (메서드의 동작을 구현하는 자식 클래스로 책임을 위임)즉, 추상클래스의 추상메서드를 자식 클래스가 구체화하여 그 기능을 확장하는 데 목적이 있다.추상 클래스.. 2024. 6. 10.