서비스를 개발하고 만드는것보다, 배포하고 관리하는데 더 많은 시간을 쓰는것 처럼 보일수 있습니다.
- 대표적인 기술 스택
- Spring, SpringBoot
- Docker
- AWS
- K8s (쿠버네티스)
public class Print() {
public void hello() {
System.out.println("hello");
}
}
public class Print() {
public static void main(String[] args) {
System.out.println("hello");
}
}
public(어느 클래스이든 참조 가능) : 접근 제어자입니다. (public 으로 해놓지 않으면, JVM의 접근이 되지않아 프로그램을 실행하지 못합니다.)static: main 메서드는 프로그램 실행의 시작점 임으로, 객체를 생성하지않고 바로 작업을 수행해야 되기떄문에 static 이어야합니다.
(static은 남용 X)void: 반환 타입이 void 즉 return하지 않는다이고,
(멀티 쓰레드를 염두하여 void를 사용)
✔ Garbage Collection (가비지 컬렉션)이란?
자바의 메모리 관리 기법중 하나로 유효하지 않은 메모리인 Garbage(가비지)가 발생하는데 자동으로 메모리 영역을 탐지하여 자동으로 해제하는 기법이다. ✔ Heap 영역을 비운다
(메모리 누수를 방지한다.)
(System.gc()를 이용해 사용자가 호출할수있지만, 시스템 성능에 엄청난 영향을 줌으로 사용 X)
ex)
com.service
com.controller
ex)
public class HelloUser { }
public class LoginUser { }
ex)
public class HelloUser {
int userAge = 25;
String userName = "신재원"
}
public static String userHello (int age, int name) {
return "안녕하세요";
}
자바의 패키지란 클래스나 인터페이스들을 한곳에 모으는 모음집 입니다.
패키지를 통하여 라이브러리끼리 구분이 가능합니다.
- 패키지 별로 비슷한 기능이나, 원하는 기능들 끼리 모아두기 때문에 파일을 효율적으로 관리할수 있습니다.
- 또한, 클래스 이름이 같더라도, 다른 패키지이면 문제가 발생하지 않습니다.
인텔리제이 단축키 자주 사용하여 외우기
✔
Git
소스 코드를 효율적으로 관리하기 위한 버전 관리 시스템
(Branch를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능하지만 로컬 저장소를 사용하기 때문에 실시간으로 다른 개발자와 작업을 공유할 수 없다.)
✔Github
: Git을 지원하는 웹호스팅 서비스이며 클라우드 서버를 사용해서 소스 코드 공유가 가능합니다.
(클라우드 서버에 소스를 울리기 때문에 여러 명이 하나의 포르젝트에 참여해 버전 제어를 할 수 있으며 공동으로 작업을 진행할 수 있습니다.)
git initgit addgit add src/* -> src 디렉토리 이하의 모든것을 추가한다.).idea/ 파일은 개인 설정 파일임으로 절대 add 하지않는다.)git commitgit branchgit remotegit remote add origin http ~ : 주소를 origin 이름으로 추가한다)git push -u origin main
pwd
: 현재 사용자가 위치하고있는 디렉토리 위치를 보여준다.ls(list의 줄임말)
: 현재 위치한 디렉토리에 있는 파일과, 디렉토리 리스트를 보여준다.li
: 파일과 디렉토리의 대한 내용을 구체적으로 보여준다.
(파일크기, 생성날짜 등)mkdir
: 디렉토리를 생성한다.
(ex :mkdir hello_linux) -> hello_linux 디렉토리를 생성cd
: 디렉토리를 이동한다.
(ex :cd hello_linux-> hello_linux 디렉토리로 이동한다.)
cd ..
: 해당 디렉토리에서 한 단계 상위 디렉토리로 이동한다.grep
: 검색하고자 하는 문자를 필터링하여 보여준다.
(ex :ll | grep hello-> hello 가 포함된 디렉토리, 파일을 보여준다)echo
: println()과 비슷, 텍스트를 보여준다.
(ex :echo hello-> "hello" 출력mv
: 파일 이동
mv a,b c,d: a,b라는 파일을 c,d라는 이름으로 바꾼다.
(rename 명령이 따로 없음)mv a,b ./hello_linux: a,b의 파일을 hello_linux 디렉토리로 이동rm
: 파일 삭제
rm a,b: a,b 라는 파일 삭제rm -r hello_linux: hello_linux 라는 디렉토리 삭제
( ✔!!! 주의 디렉토리의 하위의 모든게 지워진다.)