분류 전체보기(34)
-
[Git] Commit Message Conventions - Git에 커밋을 할 때 뭐라고 써야할까?
문서를 읽을 때, 우리가 가독성을 높이려면 어떤 format이 있는 것이 편리합니다. 논문 같은 것들보면 (물론 내용이 어려워서 이해는 어려울 수 있습니다.) 구조화 된 포맷에서 내용을 작성합니다. 그래서 핵심이 뭔지, 그 핵심을 검증하는 논지가 뭔지를 구조적으로 파악이 가능합니다. 이런 부분은 코드를 작성하는데도 반영이 됩니다. 그리고 git에 수정 내용을 commit 할 때도 이런 format이 있다면 효율적으로 변경 사항이 파악이 가능합니다. NextStep의 TDD 과정을 들으면서 'Commit Message Conventions'에 대해서 알게 되었습니다. Commit message의 기본 구조 구조는 아래와 같습니다. (): 보통 이렇게 쓴다고 합니다. 가운데 BLAND LINE을 추가하는 것..
2022.11.30 -
[Spring] IoC 컨테이너와 DI에 대해서 가장 기본적인 CRUD 예제로 이해하기
대부분 IoC 컨테이너와 DI에 대한 예제를 찾아보면 다들 너무나도 잘 정리해주신 글들이 많습니다. 그래서 저는 조금 다른 예시로 기본적인 CRUD 예제를 가지고 IoC 컨테이너와 DI를 제가 아는대로 한번 정리해보려고 합니다. 사실 DI나 보통 처음 백엔드 자바 스프링 할 때, 토비의 스프링보면서 UserDao 리팩터링하면서 IoC와 DI를 익히기 보다는 아마도 김영한님 강의 보면서 기본적인 CRUD 만들면서 익히는 분들이 더 많다고 생각이 들어서 저도 그렇게 해볼랍니다. DI에 대한 WIKI를 보면 벌써 부터 쉽지가 않아 보입니다. 흑흑 간단한 프로젝트 구성 : Github Link ( 스프링 어플리케이션 프로젝트 생성 및 기본 Controller, Service, Repository, Entity를..
2022.11.30 -
[Spring] Spring Framework Modules - 스프링 프레임워크 큰 그림 이해하기
요즘 토비의 스프링을 파보고 있는 백엔드 뉴비입니다. 힘드네요. ^^ 3년전 첫 취업으로 국비 배울때 Spring을 했었는데, 임베디드 C언어 개발자가 되고 다시 백엔드로 돌아오려고하니 Spring이 조금 발목이 잡힙니다. 로그 파싱 목적이나 데이터를 취합하는 과정에서 C언어보다는 자바 기반의 스프링 프레임워크가 솔직히 DB 접근이나 클래스단위로 파싱된 내용을 Row단위로 잘 저장가능하다 보니 업무에서도 종종 쓰긴 했는데, 엔터프라이즈 단위의 프로덕션을 개발하려고 생각하니 사실 조금 더 깊이 알아야겠다는 생각이듭니다. 김영한님 강의 중 언급한 말씀을 조금 언급하자면, 정말 스프링을 다시금 접한 저는 망망대해에 표류중인 돛단배 같습니다. 그래서 어디부터 시작하면 좋을까하고 일단 '토비의 스프링'을 딱 펼쳤..
2022.11.30 -
객체 지향 프로그래밍(Object Oriented Programming)
아래 내용은 그냥 제 의식의 흐름대로 써봅니다. 틀린 부분은 댓글 좀 부탁드려요. 상습적으로 나오는 면접 질문입니다. 늘 면접가보면 C언어를 많이 쓰던 제가 자바 소양이 부족함이 뽀록나는 대목이기도 하죠. 가장 기본적인 질문이지만 지원자의 깊이를 가늠해볼 수 있는 문제입니다. 또 면접을 보러가야하기에 한번 정리해봅니다. The Forgotten History of OOP 일반적으로 객체 지향 프로그래밍이라고하면 프로그랭을 할 데이터를 상태와 행위를 가진 객체를 만들고, 객체들 간 상호작용을 통해 로직을 구성하는 프로그래밍 방법이라고 합니다. 흔히들 객체 지향 프로그래밍의 특징을 5가지로 언급합니다. 클래스, 추상화, 캡슐화, 상속, 다형성입니다. 그러나 위 제목의 아티클을 읽어보면 객체지향의 본질이 무엇..
2022.11.29 -
Docker Compose로 MySQL Replication 구축
Docker로 MySQL Replication 구축 내용을 간단하게 기록합니다. MySQL Replication을 구축하게 된 계기는 CQRS 패턴을 학습하면서 DB를 이중화하고 읽기와 쓰기를 구분해서 사용하기 위해 구성을 잡아보았습니다. docker로 MySQL Container를 띄워서 사용하였는데, 이번기회에 Docker Compose를 사용하여 띄워보았습니다. 환경 세팅 Host PC에 MySQL 설치 Host PC에 Docker, Docker-compose 설치 아래 내용으로 구성할 예정이고, 실제 배포를 한다면 Spring-Application도 docker로 Container에 띄우고 같은 Network에 연결시켜서 통신을 하겠다고 생각이 드는데... 백엔드 실무 경험은 없어서 일단 여기까지..
2022.11.25 -
[Java] Object 클래스와 equals(), hashCode()
해당글은 아래 내용을 재구성하여 작성하여 보았습니다. - 자바의 신 - 이펙티브 자바 - 자바 공식 도큐먼트 모든 클래스는 Object 클래스의 상속을 받는다. Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 행동을 정의할 수 있기 때문이다. ( 자바의 신 p.319 ) 위 공식 도큐먼트에서는 Thread 처리를 위한 메소드들과 함께 명시가 되어있다. 아래는 자바의 신 내용을 발췌하였다. 메소드 설명 protected Object clone() 객체의 복사본을 만들어 리턴 public boolean equals(Object obj) 현재 객체와 매개 변수로 넘겨받은 객체가 같은지 확인하여, 같으면 true, 다르면 false를 반환한다. protected void finalize() 현재 ..
2022.11.24