study

(230418) JAVA, Intellij 입문2

hjkeeeem 2024. 7. 25. 20:20


sdk 검색해보기

소프트웨어를 개발하는 

 

jdk17을 사용해야하는 경우

- 스프링3.0에서 사용가능하기 때문에

 

맥에서 intellij의 settings는 propertise 임 , 단축키는 command+, 누르면 떴음

https://zuyo.tistory.com/905

 

IntelliJ 단축키 (mac, Windows)

자주 사용하는 IntelliJ 단축키 정리 OS : macOS, Windows ⇧ : shift ⌃ : controll ⌥ : option ⌘ : command Home : fn + ← End : fn + → Page Up : fn + ↑ Page Down : fn + ↓ 일반 ⌘ 0~9 (Alt + [0-9]) : 각 도구창 토글 ⌘+1 : Proje

zuyo.tistory.com

 

 

프레임워크

- 뼈대가되는 것 , 비지니스 로직(내가 만든 프로그램의 기능적 흐름)을 붙인

라이브러리

- java언어로 만들어놓은 묶음

 

스켈레톤 코드

- 뼈대가 되는 코드

스프링은 프레임워크이며 라이브러리이다. 스켈레톤 코드

 

* 패키지 명 옆에 추가 시 오류 여쭤보기

-제가 이 전 설정에서 잘 못 설정한게 있나요?

- 저도 셋팅즈에서 인텔리제이로 바꾸면 오류가 안뜨는데 일단 넘어가야하는지

 

GC (=Garbage Collection) *면접 시 많이 나오는 질문

- 당장 필요한 메모리만 사용하는게 좋음, 정작 중요한 게 못들어옴 

- 쓰레기를 줍는것, 쓸모없는 것들을 없애는 기능을 가비지컬렉션이라고 함

- 메모리가 차오를 때 필요없는 것을 없애는 것 

- 대상은 new를 대상으로 한 컬렉션들

 

package왜 쓰는지

- 패키지란 .java 파일을 구분해놓은 디렉토리

- 어플리케이션에서 파일을 모아놓는 단위로 중요하게 쓰임

 

psvm (=public static void main)

- main메소드로 jvm에서 main이 없으면 실행자체가 되지 않음

 

코드의 가독성에 대해서도 말씀해주셨음

 

단축키

- 커맨드 + N  (=파일생성)

 

cd 파일 이동

cd .. -> 한단계 위로

pwd -> 현재 나의 위치

 

디렉토리 만드는 방법

 

git commit --amend -m "바꿀 메시지"

 

 

 

자바 프로젝트

프로젝트 파일 목록

생성한 자바 프로젝트에서 src > java > com.example.backend 우클릭 후 밑줄 친 클래스 생성

 

.print() 메소드 만들기

PrintHello 파일에 위와 같이 작성 ! hello를 출력하기 위한 과정이며

한 클래스 내에서 바로 출력할 수 있지만 객체지향적 사고 이해를 위해 2개의 클래스로 나누었다.

 

여기선 run 되지 않는다. 이유는 main이 없기 때문에

그래서 두번째로 만든 클래스인 PrintHelloTest 에서 main을 넣어준다.

 

- 노랑 : main이 있어야 실행 되며, public static void main은 psvm을 입력 시 자동 입력된다.

- 연두 : 앞에 출력할 내용을 작성했던 클래스 명

- 파랑 : 새롭게 생성한 인스턴스?객체?

- 보라 : 앞에 출력할 내용을 작성했던 클래스 내 생성자명 호출

console에 출력

main class인 PrintHelloTest 에서 상단의 run 클릭 시

콘솔 화면 3번째 줄에 Task : PrintHelloTest.main() 2 라고 뜨는 부분을 보면 정상적으로 출력을 완료했다.

 

패키지 만들기

클래스를 추가했던 패키지에서 우클릭 > New > Package 선택

저기 backend. 뒤에 원하는 패키지 명을 입력하면 됨

 

빌드란?

- 서버에 올릴 수 있는 상태로 만드는 것

- 프로그램이 로컬에서 실행될 수 있도록 만드는 것

- 파일을 묶는 것

 

 

그래들 vs 메이븐 

- 라이브러리 관리 도구

- 메이븐이 그래들보다 조금 더 일찍 나왔으며, 요즘은 그래들(메이븐보다 기능이 좀 더 많음)을 더 많이 사용하는 추세

 

현업에서? 빌드 적용 시

로컬 - 훈련소

서버 - 전장

이므로 서버에서는 안되는데 로컬에서는 작동되는 그런 경우는 완전히 다른 경우다

 

 

 

hello_linux 디렉토리 만들기

- mkdir [생성할 파일 이름]

생성 : mkdir hello_linux

확인 : ls 

finder

finder에서 검색 시 hello_linux 폴더가 생긴 게 보임

 

디렉터리 이동

cd [이동 할 디렉터리 명]

cd 실행 시

cd .. ->한단계 위로 이동

한 단계 위로 이동하여 원래 기본 값으로 돌아옴

cd ..

 

echo

:  .println()과 같이 특정 텍스트를 stdout(Standard Out)에 출력

 

echo hello → hello라고 출력

echo bye → bye출력

echo hello > hello.log 넣기

1 - hello_linux로 이동

2 - echo hello > hello.log 입력

3 - 해당 디렉토리 내용물 확인

3-1 - hello.log (출력)찍힌 거 확인

 

파일 내용 보기

cat <파일명>

cat hello.log

 

 

현재 날짜와 시간을 date.log에 출력 해보기

 

linux에서 현재 날짜와 시간을 date.log에 출력하는 방법

Linux에서 현재 날짜와 시간을 date.log 파일에 출력하려면, 터미널을 열고 다음 명령어를 입력

date >> date.log

 

이 명령어는 date라는 Linux 명령어를 사용합니다. 이 명령어는 시스템의 현재 날짜와 시간을 출력합니다. >> 기호는 출력을 리다이렉션하여 지정된 파일에 추가하는 역할을 합니다. 여기서는 date.log라는 파일에 추가하게 됩니다.

만약 파일이 이미 존재한다면, 출력된 날짜와 시간이 파일에 추가됩니다. 파일이 없다면, 새로운 파일이 생성되어 날짜와 시간이 저장됩니다.

 

파일 복사

cp ~ 

copy의 약자



파일 이동

mv ~

 

bye_linux디렉토리 만들기

$ mkdir bye_linux

 

디렉토리 만들어졌는지 확인하기

$ ls

bye.log  bye_linux/  hello.log  welcome.log

 

welcome.log 파일을 bye_linux 디렉토리로 이동

$ mv welcome.log bye_linux

 

bye_linux 디렉토리의 내용 보기

$ ls bye_linux/

 

>와 >>의 차이

 

리눅스에서 >와 >>는 출력 리다이렉션(또는 출력 재지정) 연산자입니다. 이들은 터미널 출력을 다른 곳으로 리다이렉션하여 파일에 저장하는 데 사용됩니다. >와 >>의 주요 차이점은 다음과 같습니다:

 

> (오버라이트, 덮어쓰기): 이 연산자는 명령어의 출력을 지정된 파일에 저장합니다. 파일이 이미 존재하는 경우, 파일의 내용이 명령어의 출력으로 완전히 덮어씌워집니다. 즉, 기존 파일의 내용은 손실되고 새로운 출력으로 교체됩니다. 파일이 없는 경우, 새로운 파일이 생성되고 출력이 저장됩니다.



$ date > date1.log

$ date >> date2.log

$ date >> date2.log

$ date > date1.log

 

$ ls

bye.log  bye_linux/  date1.log  date2.log  hello.log

 

date2는 쌓임

$ cat date2.log

Tue Apr 18 13:23:33     2023

Tue Apr 18 13:23:36     2023

 

date1은 덮어쓰기 됨

$ cat date1.log

Tue Apr 18 13:23:38     2023



명령의 실행 결과를 파일로 출력 하고 싶을 때 $()

$ echo $(date) > eee.log



파일 편집하기vim webhook.shvim



vim에 붙여넣기

shift + insert

 

vim저장

shift + Z Z  → 1

:wq  → 2



쉘 스크립트 실행

sh webhook.sh




파일 삭제

rm ~

 

git 위치

 

지우기 전 확인

$ ls

bye.log  bye_linux/  date2.log  eee.log  hello.log  webhook.sh

 

지우기

$ rm date2.log

 

지워졌는지 확인

$ ls

bye.log  bye_linux/  eee.log  hello.log  webhook.sh



디렉토리 지우기

-r

rm -r bye_linux

 

$ ll

total 4

-rw-r--r-- 1 ocean 197609   4 Apr 18 13:10 bye.log

drwxr-xr-x 1 ocean 197609   0 Apr 18 13:19 bye_linux/

-rw-r--r-- 1 ocean 197609  25 Apr 18 13:26 eee.log

-rw-r--r-- 1 ocean 197609   6 Apr 18 13:07 hello.log

-rw-r--r-- 1 ocean 197609 277 Apr 18 13:35 webhook.sh

 

 

-r 옵션 써서 디렉토리 지우기

$ rm -r bye_linux

 

ocean@DESKTOP-QBN70H5 MINGW64 ~/hello_linux

$ ls

bye.log  eee.log  hello.log  webhook.sh

주의

디렉토리 하위에 있는 모든게 지워지므로 잘 확인 하고 지워야 합니다.

 

로그가 쌓임

date >> date.log

 

 

git clone해서 intellij에서 열기

mkdir 으로 test 파일 생성 후 cd로 test 디렉토리로 이동

git clone [repo-url] 후

Intellij 에서 file > open 클릭 시 로컬에서 test 폴더의 존재와 hello-git1 파일의 존재를 확인할 수 있음

 

 

git에 readme.md 올리기 

해당 사진은 java-project1 이지만 처음 만들었던 hello-git1 레포지토리에 들어가도 이와 동일하게 뜬다.

터미널에서 위의 순서대로 진행한다.

echo "# hello-git1" >> README.md

git init

git add README.md

git commit -m "first commit"

git branch -M main

git remote add origin https://github.com/hj-keem/hello-git1

git push -u origin main

 

이것을 순서대로 입력시 아이디와 비밀번호를 입력하는 창이 나오는데, 아이디는 현재 내가 쓰는 github 이메일(아이디)를 입력하면 되고,

비밀번호는 github에서 받은 나의 개인 토큰값을 입력해야한다.

처음에 비밀번호 적었다가 README.md 파일이 올라가지 않아서 고생했다..

 

++그래서 git remote -v 입력 후 이미 있는 git remote rm origin을 이용해 삭제한 뒤 처음부터 다시 만들었다.

 

 

빌드한 자바프로젝트 git에 업로드 (사진이 없어서 텍스트로 설명)

나의 깃허브에 새로운 레포지토리를 만든다 . 이름은 java-poject1 로 생성한 다음 Intellij로 와서 터미널에 다음과 같이 입력한다.

 

git init

현재 디렉토리를 Local Repository로 만들겠다는 뜻으로 이 디렉토리를 git으로 관리 하겠다는 선언

.git디렉토리가 만들어지며, git init을 잘못 한 경우  rm -rf .git 으로 처음부터 다시 할 수 있음

 

git status

 

다음과 같은 사진으로 빨간색 글씨의 그래들 파일과 .idea/ 파일이 뜬다.

git add

: 깃에 추가하는 것으로 추가될 시 초록색 글씨로 표시된다.

 

git add src/*

src디렉토리 이하 모든 것을 추가

 

초록색 - git으로 관리 되고 있다는 뜻

빨간색 - git에서 관리 하지 않는다는 뜻

 

build.gradle추가 하기

똑같이 gradle 파일들도 추가하는데

git add build.gradle 이렇게 했을 시 build.gradle 파일만 변경되므로 위와같이

git add gradle/* -> 근데 나는 이렇게 해도 안되어서 그냥 하나하나 다 해줬습니다

전부 다 추가 시 모습

 

개인 설정 파일로 절대 넣으시면 안 됨. 이거 빼고 다 넣은 상태가 됨!

 



git commit

commit을 하면 Local Repository에 반영한다는 뜻으로 반영 시 취소할 수 없음

덮어쓰기로 수정 가능

똑같이 git commit -m "[쓸 내용]" 

 

git branch 하면 되는데 여기서 master라고 나오면 안 된다. main 이라고 나와야 하기 때문에

중간에라도 상관없으니 git branch -M main 을 꼭 적어준다. 그러면 master -> main 으로 변경되는 걸 볼 수 있다.

변경해준 다음

git remote 

 

뒤에 들어올 주소를 origin이라는 이름으로 추가

git remote add origin [repo-url (아까 생성했던 java-project1)]

 

origin이라는 이름의 주소에 main브랜치를 업로드 한다.

git push -u origin main

그러고 다시 github 페이지에 접속해보면 자바 프로젝트가 push 되어 있다.

 

토큰값 받기

프로필에서 settings > Developer settings

Personal access tokens > Fine-grained tokens > Generate new token

날짜는 최대한 오래 설정해둔 뒤, 접근은 All repositories

Permission은 저렇게 4가지정도 해두었다.