공부 12

devtools 라이브러리 사용

devtools 라이브러리 사용 https://docs.spring.io/spring-boot/docs/1.5.16.RELEASE/reference/html/using-boot-devtools.html build.gradle에 의존성 추가 developmentOnly 'org.springframework.boot:spring-boot-devtools' 추가 브라우저로 전송되는 내용들에 대한 코드가 변경시 자동으로 어플리케이션을 재시작하여 브라우저도 업데이트 해줌 서버를 재시작하지 않고도 프론트 변경 사항을 바로 확인 할 수 있도록 함 -Property Defaults (속성 기본값) - Automatic Restart (자동 재시작) - Live Reload (실시간 리로드) - Global Settin..

공부 2023.02.15

GitHub 외부 프로젝트

외부 프로젝트에 어떻게 코드 커밋되는지... 셋팅 [gitHub] 개발 진행할 repository Fork(개발 진행할 프로젝트 저장소를 우리의 repository로 가져오는 작업 ) [로컬] fork한 repository를 로컬로 clone 명령어 - git clone http://github.com/ 내 github ID/repository 이름.git //gitHub에서 code에서 https 링크 복사 - 소스트리에서 새탭에서 Clone에서 경로 입력 .git 지우기 [로컬] remote 명령어로 upstream생성 명령어 - git remote add upstream http://github.com/ 해당 repository의 주인 이름/ 해당 repository 이름.git //소스트리에서 설..

공부 2023.02.07

GitHub의 Rebase

rebase 커밋을 재배치한다. 재배치 커밋의 위치를 다시 배치하는 작업.. 내가 새로운 기능 개발을 위해 Q위치에서 A브랜치 추가 후 새로운 기능 개발하고 커밋한 상태, 다른 팀원이 내가 개발하는 동안 나랑 같은 Q위치에서 C,D라는 개발을 완료하여 master 브랜치는 나보다 앞에 있음 이때 내 브랜치 A를 master 브랜치로 merge하려함 하지만 겹치는 부분이 존재하여 충돌(conflict)발생하여 merge 실패 이때의 충돌 문제를 해결하기 위해 git rebase를 사용함 rebase 명령어 git checkout A // 충돌이 없는 경우 git rebase master //성공 git checkout A //충돌이 있는 경우 git rebase master // 충돌로 인해서 rebase..

공부 2023.02.05

GitHub의 Pull Request

Pull Request : PR : 풀 리퀘스트 깃허브에서 머지작업 하는 것? (merge) GitHub에 작업 브랜치를 push하고 PR 요청함 PR을 사용한 업무 FLOW [로컬] 새로운 작업 브랜치에서 코드 작성함 - 작업 완료 후 commit만들고 github에 작업 브랜치만 push (master아니고 내가 작업한 브랜치만 push) [github] 새로운 브랜치 push 시, 저장소에 PR 만들기 버튼 표시됨 - pr생성함 - pr 메뉴에서 새롭게 생성된 pr확인 가능, 협업자들이 코드 리뷰 진행 - 코드리뷰 후 merge하기 버튼을 클릭 merge 진행됨 (작업 브랜치-merge->master 브랜치로 합쳐짐) -> master브랜치에 새로운 기능 적용 완료됨 (merge는 다른 브랜치에도 ..

공부 2023.02.05

Git의 branch

branch 브랜치란? 현재 작업을 하고 있는 위치이자 작업의 줄기 각각의 branch는 작업 영역이 독립적이고 branch 끼리는 영향을 끼치지 않음 가장 핵심 작업의 줄기가 중앙에 있는 줄기라고 할때 (흔하게 master 브랜치라함), 필요에 따라 master브랜치의 영향이 없도록 브랜치들을 만들어서 작업을 수행 master 브랜치에 영향이 가지 않도록 개발해야하는 이유 - 현업을 하는 경우 - master 브랜치가 현재 운영중인 서비스의 소스코드로 사용되기 때문 branch 기본 명령어 git branch //현재 브랜치 확인 git branch 브랜치이름 // 브랜치이름으로 브랜치 생성 git checkout 브랜치이름 // 브랜치 위치 변경 //브랜치이름으로 브랜치 위치 변경! 자주 현재 브랜치..

공부 2023.02.03

Git, GitHub, sourcetree

git, sourcetree 설치 github 회원가입 (회원가입 아이디 devjyj95@gmail.com) Git : 코드를 관리하기 위한 소프트웨어이자 도구 ( 형상관리 툴이라고도 함). 컴퓨터에 Git이라는 소프트웨어를 설치하고 사용 GitHub : 코드를 온라인에 저장할 수 있는 온라인(인터넷 저장소) 기본 명령어 git init : 지금의 디렉토리를 기준으로 git이 다른 디렉토리를 관리 하겠다~ 최초의 프로젝트를 생성할 때 한번만 선언하면 됨 git add . : 지금의 디렉토리를 기준으로 변경사항에 대한 내용을 git이 추적할 수 있게 add 뒤에 있는 경로 (.) 마침표는 현재 경로를 의미. 현재 경로부터 하위 디렉토리까지 변경되는 내용을 추적하겠다~ 이 git add없이 커밋하면 변경사항..

공부 2023.02.02

빌드

서버에 기능을 추가 하려면 개발자가 로컬 pc에서 개발하고 테스트까지 진행한 뒤에 문제가 없을 경우 사용자가 사용할 수 있도록 수정된 코드를 실서버에 반영해야함 서버에 반영하는 것을 배포라하고 배포(Deploy)하기 위한 과정을 빌드라 함 빌드 (Build) 소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과 ex) java프로젝트를 진행시 개발자가 작성한 A.java와 여러 정적파일등에 해당하는 resource가 존재함, 빌드를 한다면 소스코드를 컴파일해서 .class로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF들을 하나로 압축하는 과정을 의미, 컴파일은 빌드의 부분 집합이라고 생각하면 됨. ..

공부/Java 2022.12.20

Dependency

Dependency 의존 -어떤 클래스 A가 다른 클래스(또는 인터페이스) B를 이용할 때 A가 B에 의존한다고 함 - A는 B없이 작동할 수 없고 B를 재사용하지 않으면 A또한 재사용 할 수 없음 - 여기에서 클래스 A는 Dependant라고 하고 클래스 B는 Dependency라고 함 - Dependant는 자신의 Dependency들에게 의존한다. 서로를 이용하는 두 클래스는 각각 coupled라 함 - 클래스 사이의 coupling은 느슨 할 수도 타이트할 수도 있음, tightness의 정도는 연속적임, 의존선 또한 강/약함으로 나타낼수 있음, 타이트한 커플링은 강한 의존성을 만들고, 느슨한 커플링은 약한 의존성을 만들거나 만들지 않을 수 있음 - 의존성, 커플링은 방향이 존재함 (A가 B에 의..

공부/Java 2022.12.20

Gradle란?

Gradle(그래들, 그래이들) Build Tool Gradle는 일종의 Build Tool(빌드 도구)임, Groovy(그루비)를 이용한 빌드 자동화 시스템임 Ant, Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 자동화 도구 라이브러리를 간편하게 추가, 관리 가능 버전도 효율적으로 동기화해서 개발자가 비즈니스 로직에 집중할 수 있도록 도와줌 빌드 도구 발전 순서 Ant > Maven > Gradle Gradle Ant와 Maven이 가진 장점을 함께 가지고 있고, 의존성 관리를 위한 다양한 기능을 제공, 빌드 스크립트를 xml언어가 아닌 JVM에서 동작하는 스크립트 언어 그루비 기반의 DSL(Domain Specific Language)를 사용 ..

공부/Java 2022.12.20

윈도우에서 메모장으로 코딩해보기

윈도우에서 자바 코드를 작성하고 작성한 것을 컴파일한 다음 버츄얼 머신에서 실행하기 메모장으로 코딩해보기 메모장에 class Helloworld{ public static void main (String[] args) { System.out.println("Hello world"); } } 내용 입력 파일 이름 : Helloworld.java 이 파일의 확장자는 .java 컴파일 하기 위해서 win + R 키 실행 > cmd(콘솔) 열기 C:\Users\JYJ> 현재 위치한 디렉토리가 c드라이브의 유저 밑에 JYJ라는 디렉토리에 위치하고 있다는 뜻 여기에서 명령어를 입력하면 해당 디렉토리에 위치하고 있는 파일을 대상으로 명령어가 실행됨 나는 자바 소스 파일이 있는 폴더의 주소를 복사하고 자바 소스 코드 ..