멋사 Backend 2일차 🦁

신재원·2023년 4월 18일

🐱‍🏍 백엔드 개발자란?

서비스를 개발하고 만드는것보다, 배포하고 관리하는데 더 많은 시간을 쓰는것 처럼 보일수 있습니다.

  • 대표적인 기술 스택
    • Spring, SpringBoot
    • Docker
    • AWS
    • K8s (쿠버네티스)

📌 Java

📍 Java의 Main 메서드

  • 다음 코드는 실행이 되지 않습니다 왜일까요?
    • main이 없다 정확히 얘기하면 "main 메서드"가 없기 때문이다.
public class Print() {
	public void hello() {
    	System.out.println("hello");
    }
}
  • 실행이 되는 코드로 작성
public class Print() {
	public static void main(String[] args) {
    	System.out.println("hello");
    }
}
  1. public (어느 클래스이든 참조 가능) : 접근 제어자입니다. (public 으로 해놓지 않으면, JVM의 접근이 되지않아 프로그램을 실행하지 못합니다.)
  2. static : main 메서드는 프로그램 실행의 시작점 임으로, 객체를 생성하지않고 바로 작업을 수행해야 되기떄문에 static 이어야합니다.
    (static은 남용 X)
  3. void : 반환 타입이 void 즉 return하지 않는다이고,
    (멀티 쓰레드를 염두하여 void를 사용)

📍 Java의 가비지 컬렉션

✔ Garbage Collection (가비지 컬렉션)이란?

자바의 메모리 관리 기법중 하나로 유효하지 않은 메모리인 Garbage(가비지)가 발생하는데 자동으로 메모리 영역을 탐지하여 자동으로 해제하는 기법이다. ✔ Heap 영역을 비운다
(메모리 누수를 방지한다.)
(System.gc()를 이용해 사용자가 호출할수있지만, 시스템 성능에 엄청난 영향을 줌으로 사용 X)

📍 Java의 카멜 케이스 (명명법)

  1. ✔ 패키지 이름 (전부 소문자)
ex)
com.service
com.controller
  1. ✔ 클래스 이름 (단어의 첫문자 대문자)
ex)
public class HelloUser { }
public class LoginUser { }
  1. ✔ 변수 이름, 메서드 이름
    (첫 단어의 첫 문자만 소문자, 그 다음 단어의 첫 문자는 대문자)
ex)
public class HelloUser {
	int userAge = 25;
    String userName = "신재원"
}
public static String userHello (int age, int name) {
	return "안녕하세요";
}

📍 패키지 란?

자바의 패키지란 클래스나 인터페이스들을 한곳에 모으는 모음집 입니다.
패키지를 통하여 라이브러리끼리 구분이 가능합니다.

  • 패키지 별로 비슷한 기능이나, 원하는 기능들 끼리 모아두기 때문에 파일을 효율적으로 관리할수 있습니다.
  • 또한, 클래스 이름이 같더라도, 다른 패키지이면 문제가 발생하지 않습니다.

인텔리제이 단축키 자주 사용하여 외우기

🎯 Git

📍 Git != Github

Git
소스 코드를 효율적으로 관리하기 위한 버전 관리 시스템
(Branch를 생성하고 이전 브랜치로 복구, 삭제, 병합이 가능하지만 로컬 저장소를 사용하기 때문에 실시간으로 다른 개발자와 작업을 공유할 수 없다.)
Github
: Git을 지원하는 웹호스팅 서비스이며 클라우드 서버를 사용해서 소스 코드 공유가 가능합니다.
(클라우드 서버에 소스를 울리기 때문에 여러 명이 하나의 포르젝트에 참여해 버전 제어를 할 수 있으며 공동으로 작업을 진행할 수 있습니다.)

📍 자바 파일 Git에 올리기

  1. repo를 만들어준다.
  2. 인텔리제이 터미널 창에서,
    git init
    : (Git 저장소를 새로 만드는 명령이며, 현재 디렉토리를 git으로 관리하겠다는 의미입니다.)
  3. git add
    : 추가할 디렉토리를 작성합니다.
    (ex : git add src/* -> src 디렉토리 이하의 모든것을 추가한다.)
    ( ✔!!! 주의 .idea/ 파일은 개인 설정 파일임으로 절대 add 하지않는다.)
  4. git commit
    : Local Repository에 코드 변화를 기록하는것입니다.
    (commit을 하면 취소가 불가능하며, commit을 날려 덮어쓰기로 수정 해야합니다)
  5. git branch
    : 원래 코드와 별개로 독립적으로 개발하는 것이 브랜치를 따서 관리 하는 기능 입니다.
  6. git remote
    (ex git remote add origin http ~ : 주소를 origin 이름으로 추가한다)
  7. git push -u origin main
    : origin 이라는 이름의 주소에 main 브랜치를 push(업로드) 한다.

📍 Linux 명령어 (Tab으로 자동완성)

  • 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 라는 디렉토리 삭제
      ( ✔!!! 주의 디렉토리의 하위의 모든게 지워진다.)

0개의 댓글