자바
1.플랫폼 제한이 없는 언어.
Java 코드 자체가 플랫폼이 아닌 가상머신에 종속적이라는 점, 그리고 프로그램 실행의 주체가 운영 체제가 아닌 Java Runtime Environment이라는 점 때문이며 이러한 점을 통틀어 Java는 플랫폼 종속성이 낮은 언어
2.객체 지향 프로그래밍 언어
3.백엔드 개발, 안드로이드 앱 개발 언어.
자바 개발 킷, JDK(Java Development Kit): 자바 프로그램 개발 도구 + 실행 도구(JRE)를 모아놓은 소프트웨어 패키지.
- Java 바이트코드 컴파일러, Java 디버거 등 (개발) + JRE (실행)
- Oracle JDK: 비상업적 이용 무료. 상업적 이용 유로.
- OpenJDK: 오픈소스
- JRE(Java Runtime Environment): 자바 프로그램을 실행시키는 환경(핵심 파일, 라이브러리들, JVE를 포함).
-JVE(Java Virtual Environment): Java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신. JRE에 포함되어 있다. JVM은 플랫폼 독립적으로, JVM이 실행 가능한 환경이라면 어디서든 Java 프로그램이 실행될 수 있도록 한다.
통합 개발 환경, IDE(Integrated Development Environment): 소프트웨어 개발에 관련된 모든 작업, 즉 패키지 인클루딩,문서 편집 , 컴파일, 디버그, 원격 서버 액세스, 바이너리 배포 등을 하나의 프로그램 안에서 모두 처리하는 환경을 제공하는 툴. 게임(특정 언어 개발 킷)이 들어가있지 않은 게임기(IDE). IDE로 자바 프로그램을 개발하려면 JDK가 필요하다.
- Eclipse: 오픈소스 자바 특화 IDE. 순정은 다른 IDE에 밀리지만 수많은 플러그인이 존재해 더 유용하게 만들 수 있다.
- IntelliJ: 무료/유료 자바 특화 IDE. 순정으로도 뛰어난 IDE.
- 안드로이드 스튜디오: IntelliJ를 기반으로 한 오픈소스 자바로 안드로이드 앱 개발 IDE. 안드로이드의 공식 IDE.
객체 지향 프로그래밍: 객체(특정 기능을 위한 변수,메서드들 포함)들이 소통하게 만드는 방식으로 프로그래밍
- 캡슐화: 특정 기능을 위한 변수, 메서드들을 1개의 클래스 캡슐안에 넣기
- 추상화: 클래스의 세부적인 것들은 추상화시켜(private) 밖에서 안보이게 하고 이 클래스를 외부인이 사용하는 데 필수적인 것들만 밖으로 드러낸다(public).
- 상속: 한 클래스(자식) 특정 클래스(부모)를 상속하면 부모의 변수와 메서드들을 모두 물려받으면서 새로운 변수와 메서들을 덮어쓰거나 추가할 수 있다. New Game+.
- 다형성: 동일한 변수나 메서드가 상황에 맞춰서 다르게 사용될 수 있다.
디자인 패턴: 특정 문제들을 해결하기 위한 객체 지향 프로그래밍 풀이법 모음
유명한 자바 라이브러리들
- JavaFX: GUI 만들기
- JDBC: 데이터베이스 사용
- JUnit: 코드가 어떠한 조건에서도 잘 돌아가는지 테스트
유명한 자바 프레임워크들
- 스프링: 웹 프레임워크
- 스프링부트: 더 간편한 웹 프레임워크
- 메이븐: 빌드(소드 코드 -> 실행 파일)를 도와주는 프레임워크. 프로젝트 객체 모델(POM) 파일에 사용할 라이브러리들을 적어두면 알아서 다운받아 연결시켜주고 추후 업데이트도 해준다. 프로젝트 정보, 환경 설정에 대한 정보도 관리. 팀 개발을 할 때 수많은 라이브러리 파일들이 아니라 pom.xml 파일만 공유하면 모두 동일한 라이브러리를 사용할 수 있다. 특정 라이브러리가 다른 선행 라이브러리들을 필요로 하면 그것들을 적지 않아도 알아서 받아준다.
- 그레이들: 더 간편한 빌드 프레임워크. 안드로이드의 표준 빌드 시스템.
테스트 주도 개발, TDD(Test-Driven Development)
CI 관라: 깃랩 CI/CD, 젠킨스
코드 분석: SonarLint/SonarQube
빌드 관리: 메이븐, 그레이들
Code Coverage 관리: JaCoCo
'개념 정리' 카테고리의 다른 글
[개념 정리] 구글 (0) | 2022.06.06 |
---|---|
[개념 정리] 자바스크립트 (0) | 2022.06.06 |
[개념 정리] 파이썬 (0) | 2022.06.06 |
[개념 정리] 아마존 웹 서비스 AWS (0) | 2022.06.06 |
[개념 정리] 명령줄 인터페이스 CLI (0) | 2022.06.06 |