울음참고 개발공부
article thumbnail
Git | merge 방법 3-way , fast-forward
Git 2023. 4. 30. 17:59

merge 를 하는데 다양한 방법이 있다. [ 1 ] 3-way merge 각각의 브랜치에서 신규 commit 이 1회 이상있는 경우에 merge 하면 두 브랜치의 코드를 합쳐 새로운 commit 을 자동으로 생성해주는 방법이다. [ 예시 ] 그림에서처럼 두 브랜치가 base 에서 분리되어 각각의 브랜치를 가진 후 1회 이상 commit된 상태이다. 두 브랜치 (master,dev1)가 base 에서 분리된 commit 을 참조할 때 git merge를 실행하면 새로운 commit 이 생성된다. 이와 같은 merge 를 3-way-merge 라고 한다. 3-way 로 불리는 이유는? 내용을 병합할 때, base와 각 브랜치 2개가 참조하는 commit 을 진행하기 때문 [ 단점 ] 브랜치를 3-way m..

article thumbnail
Git | branch 생성 - merge - conflict 해결 예제
Git 2023. 4. 30. 16:48

여태까지 git 을 사용하며 메인 브랜치만 사용하고 다른 브랜치를 같이 사용해본적이 잘 없다. 하지만 브랜치관리는 협업에 있어 무척이나 중요하다!! [ 상황 ] 예를 들어 쇼핑몰 웹페이지를 구현하는 경우에 '쿠폰 기능'을 추가한다고 하자 이 기능을 추가하며 기존 프로젝트에 버그나 다른 문제가 발생할 수 있는데, 이때 브렌치가 '복사본' 역할을 할 수 있다. 1. 브랜치 생성 및 이동 # 'coupon' 브랜치 생성 git branch coupon # 생성된 브랜치로 이동 ( master -> coupon ) git switch coupon 브랜치를 생성하고 생성된 브랜치로 이동한다. 왜 이동?? 기존 브랜치가 main 또는 master 로 설정되어있을 것이다. 그리고 지금 상황은 master 에서 작업 ..

Java | 오버라이딩(오버라이드) vs 오버로딩
Java 2023. 4. 26. 20:24

오버라이딩(Overriding) = 오버라이드 [ 정의 ] 상속 받은 기존의 메서드를 재정의 하는 것 재정의 : 상위 객체의 메서드를 하위 객체에서 다시 정의하는 행위 오버로딩(Overloading) [ 정의 ] 메서드명이 같은 새로운 메서드를 정의하는 것 [ 예시 ] public static void add() { System.out.println("add()") } public static void add(int a){ System.out.println("add(int a)") } - 다음과 같이 add() 메서드를 오버로딩하여 같은 메서드 명을 사용할 수 있음 [ 출처 ] https://blog.naver.com/obndo8539 개발일기 : 네이버 블로그 개발자가 되고픈 코린이 blog.naver..

article thumbnail
org.springframework.transaction.annotation.Transactional;
Spring 2023. 4. 25. 20:54

2023.04.25 - [TIL] - Spring | 단위 테스트 vs 통합 테스트 Spring | 단위 테스트 vs 통합 테스트 단위 테스트 [ 정의 ] 단위 테스트는 앱의 작은 단위(일반적으로 메서드)를 사용하여 코드의 나머지 부분에서 격리하고 예상대로 작동하는지 확인한다. 스프링 컨테이너 없이 하는 순수한 테스 megak.tistory.com 이번 포스트는, 통합 테스트를 진행하던 중 발생한 오류를 해결하는 과정이다. [ 문제 상황 ] 통합테스트 구현을 위해 다음과 같이 @Transactional 어노테이션을 사용하고 싶은데, import 할 수 없는 상황이다. 왜 일까? [ 이유 ] 먼저, 해당어노테이션에 대해 알아보자 @Transactional 트렌젝션에 해당 어노테이션이 있으면, 테스트 시작전..

Spring | 단위 테스트 vs 통합 테스트
Spring 2023. 4. 25. 19:52

단위 테스트 [ 정의 ] 단위 테스트는 앱의 작은 단위(일반적으로 메서드)를 사용하여 코드의 나머지 부분에서 격리하고 예상대로 작동하는지 확인한다. 스프링 컨테이너 없이 하는 순수한 테스트라고 할 수도 있다. [ 예시 ] 회원가입을 위한 테스르를 예시로 살펴보자 class MemberServiceIntegrationTest { MemberService memberService; MemoryMemberRepository memberRepository; @BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } @..

Java | 추상클래스 vs 인터페이스
Java 2023. 4. 23. 20:39

추상클래스(Abstract class) 미완성 설계도 추상 메서드를 선언하여 상속을 통해 자손 클래스에서 완성하도록 유도하는 클래스 [ 특징 ] 추상 메서드를 하나 이상 포함하고 있다. 추상 클래스는 추상 메서드 뿐만 아니라 생성자,필드,일반 메서드도 포함할 수 있다. 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없다. 다중상속이 불가능하다. [ 예시 ] public abstract class Computer { public abstract void display(); public abstract void typing(); public void turnOff() { system.out.println("전원 off"); } } Computer 라는 추상 클래스 내에는 추상 메서드 display()..

Java | extends, implements
Java 2023. 4. 23. 20:38

extends 일반 클래스와 abstract 클래스 상속에 사용 부모의 메서드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되어 있는 것을 직접 사용 가능 implements interface 상속에 사용 부모 객체는 선언만 하며 정의(내용)은 자식에서 오버라이딩(재정의)하여 사용해야함

Java | 생성자 new
Java 2023. 4. 23. 18:28

생성자 [ 사용 예시 ] 클래스 객체 변수 = new 클래스(); [ 역할 ] 클래스 타입의 인스턴스(객체) 생성 객체를 생성할 때, new 키워드와 함께 사용 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new와 함께 호출됨 반환 값이 없고, 생성자 이름은 클래스 이름과 동일함 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private 로 선언되는 경우도 있음 new 선언하면 인스턴스가 생성되고 메모리에 할당됨 [ 출처 ] https://blog.naver.com/obndo8539/222892728269 생성자, 예약어 this, get()함수,set()함수 생성자 객체를 생성할 때, new 키워드와 함께 사용 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생... ..