백엔드 데브코스 TIL 01일차

Inchang Choi·2022년 3월 22일
1
post-thumbnail

학습목표

강의를 들으며 내가 알고 있는 내용을 점검하고,
새로 배운 내용을 정리하며,
궁금한 내용을 알아가며 학습해나가는 것을 목표로 합니다.


Java 개발 환경

  • JVM (Java Virtual machine)
    Java bytecode를 실행 시킬 수 있는 가상머신이며 OS에 종속되지 않는다.
  • JRE (Java Runtime Environment)
    JVM + 각종 라이브러리의 집합이며 → java 명령어 사용가능
  • JDK (Java Development Kit)
    JRE + 컴파일러 + 디버거 → java + javac 명령어 사용가능
    • java 명령어와 javac 명령어의 다른 점
      • java 명령어는 .class 파일을 실행 시킬 수 있는 명령어
      • javac는 java 파일을 컴파일 하는 명령어
      • 즉 텍스트로 되어 있는 자바 파일을 bytecode로 JVM 위에서 사용할 수 있도록 컴파일함
      • 바이트코드는 .class 파일로 저장됨.
  • 최소 8 이상을 설치
    • 자바 8 이상부터 lambda, Stream, Optional 등을 지원하기 때문
  • public static void main (String[] args) 의 뜻
    • public : 접근 제어자로 어디에서든 접근이 가능해야함
    • static : 정적 메소드로 선언하여 메모리에 할당해야함
    • void : 메인 메소드와 프로그램이 함께 동작하기 때문에 프로그램이 끝나면 메소드도 끝나게 되어 반환 값이 없음
    • String[] args : 외부에서 입력값을 받아 문자열로 사용할 수 있음.

Build Tool

자동으로 프로그램을 빌드 해주고 실행해주는 도구.

  • Ant : 현재는 잘 사용하지 않음.
  • Maven
  • Gradle
    • 그래들 프로젝트 설정 순서
      • Gradle init 으로 프로젝트 생성
      • 언어 선택
        • Scala, Groovy, Java, Kotlin은 JVM 위에서 실행되는 언어인데 언어 중에 C++, Swift도 있었다.
      • 멀티 프로젝트 / 싱글 프로젝트 선택
      • DSL(Domain Specific Language)
        • Groovy, Kotlin
      • Test Unit
        • JUnit4, TestNG, Spock, JUnit Jupiter(JUnit 5)
      • 프로젝트 이름
      • 패키지 이름
    • bulid script : 소스 코드의 위치, 실행 환경 등
    • gradle init으로 프로젝트 생성
    • gradle tasks로 태스크 목록 확인
    • gradle build로 빌드
    • gradle run 으로 실행

IDE

여러 개발 툴들을 GUI 환경에서 편하게 사용할 수 있도록 도와주는 소프트웨어

  1. Eclipse
  2. IntelliJ
    • 빌드 툴 + 코드 작성에 있어서 편리함.
    • 유용한 단축키
      • Option + Enter : 빠른 수정
      • Command + 숫자 1 : 프로젝트 메뉴창으로 빠르게 이동 가능
      • Command + N : 새로운 파일 생성
      • Shift + Shift : 파일이름 검색 기능
      • Option + Up(or Down) : 단계별 블록 지정 가능
      • Command + / (Slash) : 주석 토글
      • Command + Option + L : 코트 리포맷팅
      • Command + T : 코드 리팩토링
      • Shift + Command + A : 명령어 검색

주니어 개발자가 알아야 할 내용

  1. Code Convention
    • 팀이나 회사가 개발 그룹에서 정해서 사용함.
    • 없으면 기본적인 자바 코딩 룰을 따르자.
      • 클래스 명은 대문자로 시작한다.
      • Camel Case를 지키자
      • 메소드나 변수명은 소문자로 시작한다.
      • 들여쓰기 (탭과 스페이스 하나만)
  2. Reference
    • 자바를 하면 포인터를 몰라도 된다 (X)
      • 자바에서는 포인터 대신 레퍼런스라는 개념이 있음.
      • 원시 타입 8개를 제외한 모든 것이 레퍼런스 타입임.
    • java에서는 alloc / free를 개발자가 신경쓰지 않아도 된다. (가바지 컬렉션이 있기 때문)
    • Call by value / Call by reference
  3. Constant pool
    • String을 특별하게 취급함.
    • String은 += 연산을 사용하면 새로운 객체가 계속 생성되어 공간 낭비가 심하기 때문에 사용하지 않음.
    • new로 만든 String 객체와 ""를 사용하여 리터럴로 선언된 객체가 주소값이 다르기 때문에 다른 객체로 판단함.
    • StringBuffer(멀티 스레드 지원) / StringBuilder를 사용함.
  4. Object
    • 모든 객체의 최상위 객체임
    • 모든 객체는 Object 클래스의 메소드를 호출 할 수 있음.
    • Object 객체의 메소드
      • toString() : 객체가 가지고 있는 값이나 정보를 문자열로 반환하는 메소드
      • equals() : 레퍼런스의 주소값이 아닌 가지고 있는 값을 기준으로 비교를 하여 참/거짓을 반환하는 메소드
      • hashCode() : 객체의 해쉬코드를 반환함.
        해쉬코드란 객체의 주소값을 변환하여 생성한 객체의 고유한 정수값임.
  5. Git
    • Tool을 사용해서 활용하자. 굳이 명령어로 익힐 필요는 없다.
      • Github Desktop, SourceTree
    • .gitignore를 잘 사용하자
      • 빌드 결과 / 바이너리 (.class .jar .build/)
      • 로컬설정
      • 제너레이트 가능 파일들
      • 키(보안 관련 파일)
      • .gitignore.io
profile
always positive

0개의 댓글