목차

  • Java란 무엇인가?
  • JDK 17을 선택해야 하는 이
  • JDK 설치 방법환경 
  • 변수 설정하기
  • 설치 확인하기
  • 마무리
1. Java란 무엇인가?
Java는 1995년 썬 마이크로시스템즈에서 개발한 객체지향 프로그래밍 언어이다. "Write Once, Run Anywhere"라는 슬로건이 말해주듯이, 한 번 작성한 코드를 다양한 플랫폼에서 실행할 수 있다는 특징을 가지고 있다.
현재는 전 세계에서 가장 많이 사용되는 프로그래밍 언어 중 하나이며, 특히 기업용 소프트웨어 개발에서 높은 점유율을 보이고 있다.
2. JDK 17을 선택해야 하는 이유
JDK(Java Development Kit)는 Java 프로그램을 개발하고 실행하는 데 필요한 도구들의 모음이다. JDK 17은 다음과 같은 장점이 있다:
  • LTS(Long Term Support) 버전으로 2029년까지 장기 지원된다
  • 이전 버전보다 성능과 보안이 크게 향상되었다
  • Record, Sealed Classes 등 최신 Java 기능을 사용할 수 있다
  • Spring Boot 3.x 버전을 사용하기 위한 최소 요구사항이다

3. JDK 설치 방법

JDK 설치는 다음 순서로 진행하면 된다:
Oracle 공식 웹사이트 방문

JDK 17 다운로드

  • 자신의 운영체제에 맞는 설치 파일을 선택한다
  • Windows 사용자는 x64 Installer를 다운로드한다

설치 파일 실행

  • 다운로드한 설치 파일을 실행한다
  • 기본 설정을 유지하면서 'Next'를 클릭한다
  • 치 경로는 기억해두면 좋다 (예: C:\Program Files\Java\jdk-17)

4. 환경 변수 설정하기

Windows에서 Java를 어디서든 실행할 수 있도록 환경 변수를 설정해야 한다.

 

스템 환경 변수 설정 창 열기

  • Windows 키 + R을 누른 후 sysdm.cpl을 입력한
  • 급 탭에서 환경 변수를 클릭한다

시스템 변수 설정

  • 새로 만들기를 클릭한다
  • 수 이름에 JAVA_HOME을 입력한
  • 변수 값에 JDK 설치 경로를 입력한다

Path 변수 편

  • 스템 변수에서 Path를 찾아 편집한다
  • 새로 만들기를 클릭한다
  • %JAVA_HOME%\bin을 추가한다

5. 설치 확인하기

령 프롬프트(cmd)를 열고 다음 명령어로 설치를 확인할 수 있다:

    java --version
    javac --version
정상적으로 설치가 완료되면 다음과 같은 결과가 출력된다:
    java 17.0.x (Oracle Corporation)
   Java(TM) SE Runtime Environment (build 17.0.x)
   Java HotSpot(TM) 64-Bit Server VM (build 17.0.x, mixed mode, sharing)
6. 마무리
이것으로 Java 개발을 위한 기본적인 환경 설정이 완료되었다. 다음 단계는 통합 개발 환경(IDE)인 Eclipse를 설치하는 것이다. Eclipse를 통해 더욱 효율적인 Java 개발이 가능해질 것이다.
다음 포스팅에서는 Eclipse IDE의 설치 방법과 기본적인 설정 방법에 대해 알아볼 예정이다. Eclipse는 Java 개발을 더욱 편리하게 만들어주는 필수 도구이다.

Java 소개 및 환경 설정 - Java란?

  • Java를 배워야 하는 이유
  • Java의 특징
  • Java의 동작 원리
  • Java 버전별 특징
  • Java로 할 수 있는 것들
  • 마무리

1. Java를 배워야 하는 이유

프로그래밍 언어를 처음 배우려는 사람들에게 Java는 매우 좋은 선택이다. 객체지향의 개념을 잘 배울 수 있고, 실무에서도 널리 사용되는 언어이기 때문이다. 실제로 전 세계 기업용 소프트웨어의 90% 이상이 Java로 작성되어 있다.

2. Java의 특징

2.1 객체지향 프로그래밍

Java는 객체지향 프로그래밍(OOP) 언어이다. 현실 세계의 개념을 프로그래밍으로 쉽게 표현할 수 있다.

간단한 예시:

class Car {

    String color;

    int speed;

    void accelerate() {

    speed += 10;

    }

}

2.2 플랫폼 독립성

"Write Once, Run Anywhere"가 Java의 큰 장점이다. Windows에서 작성한 코드를 Linux나 Mac에서도 동일하게 실행할 수 있다.

2.3 풍부한 라이브러리

Java는 방대한 표준 라이브러리를 제공한다. 문자열 처리부터 네트워크 통신까지 다양한 기능을 쉽게 구현할 수 있다.

3. Java의 동작 원리

3.1 컴파일과 실행

 

  • .java 파일을 작성한다
  • 파일러(javac)가 이를 .class 파일(바이트코드)로 변환한다
  • JVM이 .class 파일을 실행한다

3.2 가비지 컬렉션

Java는 자동으로 메모리를 관리한다. 프로그래머가 직접 메모리 할당과 해제를 하지 않아도 된다.

4. Java 버전별 특징

주요 버전의 특징을 살펴보면:

  • Java 8: 람다식, 스트림 API 도입
  • Java 11: 첫 번째 LTS 버전
  • Java 17: 패턴 매칭 기능 강화

5. Java로 할 수 있는 것들

5.1 웹 애플리케이션
  • Spring Framework를 이용한 웹 서버 개발
  • Android 앱 개발

5.2 데스크톱 애플리케이션

  • JavaFX를 이용한 GUI 프로그램
  • 게임 개발

5.3 엔터프라이즈 솔루션

  • 대규모 기업용 시스
  • 클라우드 서비스

6. 마무리

Java는 배우기 쉽고 활용도가 높은 프로그래밍 언어이다. 다음 포스팅에서는 Java 개발 환경 설정 방법에 대해 알아볼 예정이다.

음 학습 내용

  • JDK 설치하기

목차

  • 왜 reset을 알아야 하는가?
  • 2. git reset HEAD~1 이해하기
  • reset의 세 가지 모드
  • 실전 사용 사
  • 주의사항과
  • 마무리

1. 왜 reset을 알아야 하는가?

Git을 사용하다 보면 실수로 잘못된 파일을 커밋하거나, 커밋 메시지를 잘못 작성하는 경우가 발생한다. 이런 상황에서 git reset HEAD~1은 우리의 실수를 깔끔하게 되돌릴 수 있는 강력한 도구이다. 특히 개발 초보자라면 이런 실수는 더욱 빈번하게 발생할 수 있으므로, reset 명령어의 올바른 사용법을 아는 것이 매우 중요하다.

2. git reset HEAD~1 이해하기

git reset HEAD~1은 가장 최근의 커밋을 취소하고 이전 상태로 되돌리는 명령어이다.

여기서:

  • ~1은 현재 위치에서 1개 이전 커밋을 의미한다.
  • HEAD는 현재 작업 중인 브랜치의 최신 커밋을 의미한다.

현재 커밋 로그를 확인하는 명령어:

git log --oneline

 

가장 최근 커밋을 취소하는 명령어:

git reset HEAD~1

3. reset의 세 가지 모

3.1 Soft Reset

    git reset --soft HEAD~1

  • 커밋만 취소하고 변경된 파일들은 스테이징 영역에 유지된다.
  • 커밋 메시지만 수정하고 싶을 때 유용하다.

3.2 Mixed Reset (기본값)

    git reset HEAD~1

  • 커밋을 취소하고 변경된 파일들을 스테이징 영역에서 제거한다.
  • 파일 내용은 그대로 워킹 디렉토리에 남는다.

3.3 Hard Reset

    git reset --hard HEAD~1

  • 커밋을 취소하고 파일 변경 내용도 완전히 삭제한다.
  • 따라서 매우 신중하게 사용해야 한다.

4. 실전 사용 사례

4.1 커밋 메시지 수정하

잘못된 메시지로 커밋한 경우:

    git reset --soft HEAD~1

    git commit -m "올바른 커밋 메시지"

4.2 잘못된 파일 커밋 수정하기

잘못된 파일이 포함된 커밋을 취소:

    git reset HEAD~1

올바른 파일만 선택하여 다시 커밋:

    git add 올바른_파일.txt

    git commit -m "올바른 파일로 다시 커밋"

5. 주의사항과 

5.1 원격 저장소 관련 주의사

  • 이미 push한 커밋은 reset하지 않는 것이 좋다.
  • 팀 프로젝트에서는 git revert 사용을 고려한다.

5.2 안전한 사용을 위한 

  • 중요한 작업 전에는 브랜치를 만들어 작업한다.
  • hard reset 사용 전에는 반드시 변경 사항을 백업한다.
  • git reflog로 reset 이전 상태를 확인할 수 있다.

6. 마무리

git reset은 매우 유용하지만 신중하게 사용해야 하는 명령어이다. 특히 시작하는 개발자라면 --soft나 --mixed 옵션을 주로 사용하고, --hard는 확실한 경우에만 사용하는 것이 안전하다.

'GIT' 카테고리의 다른 글

[Git command] Local Storage 브랜치 삭제  (0) 2024.05.26

향상된 for문은 자바 5부터 추가된 기능으로, 배열이나 컬렉션 등의 요소를 간편하게 순회할 수 있는 문법이다.
아래 기존,향상된 두 코드는 결과가 동일하다.

기존 for문
for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}

향상된 for문
for (int number : numbers) {
    System.out.println(number);
}

장점 : 코드 간결해짐, 인덱스 예외를 피할수 있다

주로 데이터베이스 쿼리에서 반환된 결과가 너무 많을 때 발생한다.

1. 잘못된 조건: 데이터베이스 쿼리에 잘못된 조건이 포함되어 있어서 예상보다 많은 결과를 반환하는 경우
- ex) 1개의 데이터가 반환되어야 하지만 내가 짠 쿼리의 조건으로는 2개의 데이터가 반환될 때

2. 중복된 데이터: 쿼리 결과에 중복된 데이터가 포함되어 있어서 예상보다 많은 결과가 반환되는 경우
- 이 경우 데이터 중복을 방지하거나 적절한 DISTINCT나 GROUP BY 절을 사용하여 해결할 수 있다.

3. 조인 문제: 쿼리에 잘못된 조인이 포함되어 있어서 결과가 예상치 못하게 확장되는 경우
- 각 조인이 맞는 방향으로 걸려있는지 확인한다.

'DB' 카테고리의 다른 글

[Dbeaver] MariaDB 드라이버 설치불가  (0) 2024.05.26
MSSQL MERGE INTO문 (mybatis ver)  (0) 2024.05.26

[에러상황] MariaDB 연결중 MariaDB 드라이버 다운로드 불가.

 

[에러코드] Network error

이유: Network unavailable due to a certificate issue. Try changing the setting Use Windows trust store in Preferences->Connections and restart DBeaver. It might help if you haven't overridden the trust store. javax.net.ssl.SSLHandshakeException:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

 

[조치법] 상단 [윈도우]메뉴 - 설정 - 연결 -> Use Windows trust store 해제

'DB' 카테고리의 다른 글

TooManyResultException 에러 해결  (0) 2024.05.28
MSSQL MERGE INTO문 (mybatis ver)  (0) 2024.05.26

Sourcetree, GitHub Desktop 등 UI에서 브랜치삭제에 문제가 생겼을 때 강제로 삭제하는 방법이다.

 

1. git branch -> Local 브랜치명 검색

2. git branch -D [브랜치명]

 

'GIT' 카테고리의 다른 글

[Git Command] commit 실수 되돌리기  (0) 2025.02.21

[USING ON 조건] 일치여부에따라 INSERT 또는 UPDATE, DELETE도 가능한 문법이다.

DELETE는 사용해보지 않았지만 비슷할것같다.

 

현재 진행중인 프로젝트에서 사용할 일이 생겨

상황별 UPDATE, INSERT 정상 적용되는것 확인후 작성

 

=============================

SQL

=============================

MERGE INTO [테이블명] AS a
USING (SELECT 1 AS dual) AS b 
      ON (a.SEQ = #{seq})
 WHEN MATCHED THEN
 UPDATE
        SET  CONTENT = #{content}

 WHEN NOT MATCHED THEN
 INSERT(TITLE

             ,  CONTENT

             ,  CREATE_AT)
 VALUES( #{title}

              ,  #{content}

              ,  #{createAt});

=============================

설명

=============================

[테이블명] -> UPDATE또는 INSERT할 테이블

[ USING (SELECT 1 AS dual) AS b ] -> 추가테이블 사용 안할거기때문에 잡아놓은 더미테이블

[ ON (a.SEQ = #{seq}) ] -> 조건식

[ WHEN MATCHED THEN ] -> 조건식이 참일때. 라는 뜻

[ WHEN NOT MATCHED THEN ] -> 조건식이 거짓일때. 라는 뜻

*위 쿼리를 보면 알겠지만 UPDATE, INSERT문에는 테이블명을 따로 기입하지 않고 MERGE INTO 옆에만 한번 작성한다.

=============================

'DB' 카테고리의 다른 글

TooManyResultException 에러 해결  (0) 2024.05.28
[Dbeaver] MariaDB 드라이버 설치불가  (0) 2024.05.26

+ Recent posts