본문 바로가기

전체 글

(84)
Commit 생성, commit message 작성 가이드라인 커밋(commit)은 Git에서 가장 핵심적인 개념 - 커밋은 staging area의 현 상태를 그대로 하나의 버전으로 남기는 작업, 또는 그 결과물을 가리키는 말 커밋에는 크게 다음과 같은 3가지 정보가 있다. (1) 커밋을 한 사용자 아이디 (2) 커밋한 날짜, 시간 (3) 커밋 메시지 특정 프로젝트 디렉토리가 어떻게 변해왔는지를 한 눈에 잘 파악하기 위해서는 커밋의 이런 정보들이 아주 중요하다. 그런데 (1), (2)는 커밋을 할 때 Git에서 자동으로 기록해주지만, (3) 커밋 메시지는 커밋을 하는 사람이 매번 직접 작성하는 것이기 때문에 사람마다 그 분량이나 스타일이 제각각일 수 있다. 개인 프로젝트의 경우에는 커밋 메시지를 어떻게 작성하든 큰 상관이 없을 수 있지만, 회사에서 여러 명이 참여..
Git 기본 개념과 사용법 1. 레포지토리(repository) 프로젝트를 하나 진행한다고 생각해보자. 이 프로젝트 디렉토리를 깃으로 버전관리하기 시작하면, 원하는 시점마다 디렉토리안에 어떤 것들이 있는지, 내용이 어떻게 변해가는지 초창기 모습부터 버전별로 담겨있을 것이다. (SnapShot) git으로 관리하면 프로젝트 디렉토리 안에 .git이라는 숨겨진 디렉토리가 만들어진다 여기엔 변경사항들이 들어있다 2.커밋(commit) 프로젝트 진행시에 "이 시점의 모습을 남기고 싶다" 라고 생각될때가 있을 것이다. 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위와 그 결과물을 커밋이라고 한다. 그리고 이 커밋이 저장되는 곳이 레포지토리이다. Repository 만들기 mkdir book - book이라는 디렉토리를 만드는..
GitHub란 Git으로 버전관리와 협업이 가능하다고 했는데 이 외에도 Git은 "다른 컴퓨터에 작업물을 보내는" 것이 가능하다 작업물을 다른 컴퓨터에 보낸다는 것은 다른 컴퓨터에 작업물의 백업본을 만들어 두는 것과 같다. 내 컴퓨터에서 작업물이 사라지거나 문제가 생겼을때 백업본을 가져와서 복구할 수 있다. 이 외부 컴퓨터는 직접 준비할 수 있지만, 너무 번거롭다. 이를 서비스 해주는게 GitHub이다. 말하자면 내 백업본을 관리해주는 사이트이다. 원격 저장소를 대신 제공해주는 서비스 Git vs Github Git은 버전관리를 해주는 프로그램 Github은 Git으로 관리되는 프로젝트를 올려놓을 수 있는 사이트이다. 외부 컴퓨터에 올릴 수 있다면 다른사람과 협업도 수월해진다. 내가 A라는 기능을 개발해서 Github..
Git이란 코드 버전 관리 프로그램 여기서 버전 관리란, 대학 과제 제출시에 발표자료 발표자료(수정) 발표자료(수정1) 발표자료(최종) 발표자료(최종끝) 발표자료(진짜최종) 과 같이 해본 적이 있지 않나? 이전에 있던 파일을 혹시몰라 남겨둔 채로 새로운 작업을 할 때가 많다. 그리고 이 와중에도 무엇이 달라졌는지 변경점을 알고 싶다면 파일을 하나하나 열어봐야 하는데, 이를 막기 위해서는 버전 관리가 필요하다 버전관리란 파일의 변화를 시간에 따라서 기록했다가 나중에 특정 시점의 버전을 꺼내올 수 있는 방법이다. 버전관리의 장점은 1. 지난 과정을 확인 가능하다는점 (어떤 변경점이 있었는지) 2. 문제가 생기면 이전 버전으로 돌아갈 수 있다 Git은 코드 버전 관리 프로그램으로, Git은 매번 작성했던 코드의 모습을 ..
프로토 타입과 스코프 기본적으로 스프링의 빈은 싱글톤으로 만들어진다. 싱글톤-> Application Context 마다 Bean의 오브젝트가 한 개만 만들어진다. 사용자의 요청이 있을 때마다 매번 애플리케이션 로직을 담은 오브젝트를 만드는 건 비효율적이기 때문이다. 하지만, 하나의 빈 오브젝트에 동시에 여러 스레드가 접근하기 때문에 상태값을 인스턴스 변수에 저장해두고 사용할 수는 없다. 그래서 보통 싱글톤의 필드에는 의존관계에 있는 빈에 대한 레퍼런스 or 읽기전용 값만 저장해두고 오브젝트의 변하는 상태를 저장하는 인스턴스 변수는 두지 않는다. 애플리케이션 로직((ex) 사용자 요청 저장해서 전달하는 폼 지원 오브젝트, DB나 비즈니스 로직에 의해 새로 만들어지는 DTO] 을 담은 오브젝트는 싱글톤 빈으로 만들면 충분하다...
"Map 과 HashMap의 차이가 뭐에요?" (내 얘기) 결론부터 말하자면, Map이란 key-value로 값을 저장하는 자료구조를 의미하고, HashMap은 Map을 구현해놓은 구현체 중 하나이다. 즉, 서로 비교대상이 될 대상이 아니다. Map이란 개념을 구현해서 HashTable, HashMap, TreeMap 등이 있는 것이니 말이다. '진자와 그네의 차이점이 뭔가요?' 와 비슷한 질문일 것 같다. 그럼 Map이란 무엇일까? Java Collection의 주요 인터페이스엔 List, Set, Map이 있는데, 우선 이 인터페이스를 구분하는 가장 중요한 개념은 "순서" 와 "데이터중복여부" 에 있다. List: 순서 O, 데이터 중복O Set: 순서 X, 데이터 중복X Map: Key&Value 저장, Key중복X, Value중복 O Java Collec..
22년 12월 23일 - Docker - Ajax란 - Java Collection - 자바의 정석 - 토프링 - 마쉴랭(사이드 프로젝트)
[백준] 18870 - 좌표 압축 - JAVA[자바] [접근 방법] "좌표 압축" 은 coordinate Compression(좌표 압축) 이라고 하는 문제의 한 카테고리를 차지하고 있다. 데이터의 범주가 너무 크거나, 단순화하여 문제를 세분화 시킬 때 사용할 수 있다. 이번 문제를 해석하면 배열의 각 원소에 대해 순위를 매긴다 라고 생각하면 된다. 예제 입력 1에서 {2, 4, -10, 4, -9} 가 있을 때 내림차순으로 순위를 매긴다면 {2, 3, 0, 3, 1} 이 된다. 즉, 1. 낮은 값이 높은 순위(0순위) 를 갖는다. 2. 중복되는 원소는 같은 순위를 갖는다. 이때 정렬을 떠올리는 것이 좋은 접근방법이다. 또, "2. 중복되는 원소는 같은 순위를 갖는다." 에서 중복되는 원소를 하나만 갖는게 중요하므로 자료구조 중 Set 혹은 Map을 사용하..