이클립스(Eclipse)에서 자주 사용되는 유용한 단축키는 개발 효율을 크게 높일 수 있습니다. 아래는 자바 개발 기준으로 유용한 단축키 목록입니다:

기본 편집 관련

Ctrl + Space : 코드 자동 완성

Ctrl + Shift + F : 코드 자동 정렬 (Format)

Ctrl + / (슬래시) : 한 줄 주석/해제

Ctrl + Shift + /, Ctrl + Shift + \ : 여러 줄 주석/해제

Alt + Shift + R : 변수/메소드 이름 일괄 변경 (Rename)

Ctrl + D : 현재 줄 삭제


탐색 및 이동

F3 : 선언으로 이동

Ctrl + 클릭 : 변수/메서드 정의로 이동

Ctrl + Shift + T : 클래스 검색 (모든 워크스페이스에서)

Ctrl + O : 현재 클래스 내 메서드 및 필드 목록 보기

Ctrl + E : 열려 있는 파일 목록 보기


실행 관련

Ctrl + F11 : 마지막 실행 환경으로 실행

F11 : 디버그 실행

F5 / F6 / F7 / F8 : 디버깅 시 Step Into / Step Over / Step Return / Resume


리팩토링

Alt + Shift + L : 로컬 변수로 추출

Alt + Shift + M : 메서드로 추출

Alt + Shift + C : 메서드 호출 체인 변경


기타 유용한 단축키

Ctrl + Shift + L : 현재 단축키 목록 확인

Ctrl + Q : 마지막 편집 위치로 이동

Ctrl + Alt + 방향키(위/아래) : 현재 줄 복사

이클립스에서 메소드 사용처(호출된 위치)를 조회하는 단축키



Ctrl + Alt + H : Call Hierarchy (호출 계층 보기)

선택한 메소드가 어디에서 호출되는지를 트리 구조로 보여줍니다.

예: 어떤 클래스에서 doSomething() 메소드를 호출하는지 추적 가능


Ctrl + Shift + G : References 검색

워크스페이스 전체에서 해당 메소드가 어디서 참조되는지를 찾습니다.

메소드뿐 아니라 변수나 클래스도 동일하게 검색됩니다.


두 단축키는 사용 용도는 비슷하지만:
Ctrl + Alt + H는 호출 관계를 계층적으로 정리해 보여주고,
Ctrl + Shift + G는 참조 위치를 리스트 형태로 보여줍니다.










'기타' 카테고리의 다른 글

[기타]SSO(Single Sign-On) 란  (0) 2025.04.03
[기타]SQLSTATE=08003 오류  (0) 2025.04.03
[JAVA]subtract  (0) 2025.01.07
[JAVA]indexOf()  (1) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24

SSO(Single Sign-On)는 한 번의 로그인으로 여러 개의 시스템이나 애플리케이션에 접근할 수 있도록 해주는 인증 방식입니다.

웹 시스템에서 SSO는 다음과 같은 역할을 합니다.

 

SSO(Single Sign-On) 방식

1. 사용자 편의성 향상

  • 사용자는 한 번 로그인하면 여러 개의 서비스에 다시 로그인할 필요 없이 접근할 수 있습니다.
  • 비밀번호를 여러 개 기억할 필요가 없어 보안성이 높아집니다.

2. 보안 강화

  • 중앙에서 사용자 인증을 관리하기 때문에, 보안 정책(예: 강력한 비밀번호, 2FA, 인증 만료 시간 등)을 일관되게 적용할 수 있습니다.
  • 여러 개의 애플리케이션에 동일한 계정을 사용하게 되어 계정 탈취 위험이 줄어듭니다.

3. 관리 효율성 증가

  • 기업이나 기관에서 계정을 일괄적으로 관리할 수 있어 사용자 계정 생성, 삭제, 권한 변경이 용이합니다.
  • 시스템마다 별도로 로그인 정보를 저장할 필요가 없어 유지보수 부담이 줄어듭니다.

4. 통합 인증 프로세스 지원

  • OAuth, SAML, OpenID Connect 등 표준 인증 프로토콜을 활용하여 다양한 서비스와 연동이 가능합니다.
  • 사내 시스템뿐만 아니라 클라우드 서비스(Google Workspace, Microsoft 365 등)와도 쉽게 연계할 수 있습니다.

5. 보안 감사 및 모니터링 용이

  • 중앙 집중형 인증 시스템을 사용하면 로그인 기록을 통합 관리할 수 있어 보안 감사와 로그 모니터링이 쉬워집니다.

 

'기타' 카테고리의 다른 글

[기타]이클립스 유용한 단축키  (1) 2025.04.29
[기타]SQLSTATE=08003 오류  (0) 2025.04.03
[JAVA]subtract  (0) 2025.01.07
[JAVA]indexOf()  (1) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24

SQLSTATE 오류 코드 08003은 "연결이 존재하지 않습니다"라는 의미입니다.

즉, 데이터베이스 연결이 닫혔거나 제대로 설정되지 않았을 때 발생하는 오류입니다.

가능한 원인:

  1. 연결이 닫힘 – 쿼리를 실행하기 전에 데이터베이스 연결이 종료됨.
  2. 유휴 시간 초과 – 오랜 시간 동안 사용되지 않아 데이터베이스 서버가 연결을 종료함.
  3. 네트워크 문제 – 네트워크 장애로 인해 연결이 끊어짐.
  4. 잘못된 연결 처리 – 이미 닫힌 연결을 다시 사용하려고 시도함.
  5. 데이터베이스 서버 재시작 – 서버가 재시작되면서 기존 연결이 무효화됨.

해결 방법:

  • 쿼리를 실행하기 전에 연결 상태를 확인하세요.
  • 연결이 끊어졌다면 재연결을 시도하세요.
  • 예외 처리를 통해 연결 종료 시 재연결하도록 구현하세요.
  • 서버의 연결 유지 시간(Timeout) 설정을 조정하여 연결이 쉽게 끊어지지 않도록 하세요.
  • 커넥션 풀을 적절히 사용하여 닫힌 연결을 재사용하지 않도록 하세요.

 

마지막 해당 DB 접근허용이 되어있는지 확인(방화벽) 필요!! 서버 및 방화벽 업무 담당자에게 확인요청!!


'기타' 카테고리의 다른 글

[기타]이클립스 유용한 단축키  (1) 2025.04.29
[기타]SSO(Single Sign-On) 란  (0) 2025.04.03
[JAVA]subtract  (0) 2025.01.07
[JAVA]indexOf()  (1) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24

Java에서 두 숫자를 뺄 때, subtract라는 이름의 기본 제공 함수는 없습니다. 대신, 간단한 뺄셈 연산자 -를 사용할 수 있습니다.

다만, 특정한 목적에 따라 뺄셈을 수행하는 subtract 메서드를 직접 정의하거나, Java의 BigDecimal 클래스처럼 특정 클래스에서 제공하는 subtract 메서드를 사용할 수 있습니다.

1. 간단한 뺄셈 연산(int)

public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 4;
        int result = a - b;
        System.out.println("결과: " + result);
    }
}

출력:

결과: 6

2. BigDecimal 클래스의 subtract 메서드

BigDecimal은 정밀한 숫자 연산이 필요할 때 사용됩니다.

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("10.5");
        BigDecimal num2 = new BigDecimal("4.2");
        BigDecimal result = num1.subtract(num2);

        System.out.println("결과: " + result);
    }
}

출력:

결과: 6.3






'기타' 카테고리의 다른 글

[기타]SSO(Single Sign-On) 란  (0) 2025.04.03
[기타]SQLSTATE=08003 오류  (0) 2025.04.03
[JAVA]indexOf()  (1) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24
DECLARE EXIT HANDLER RESIGN  (0) 2024.12.24

Java의 indexOf() 메서드는 문자열 내에서 특정 문자나 하위 문자열의 위치를 찾을 때 사용(특정 문자가 문자열내 존재하는지 확인하기 위해 주로 사용,url 주소 및 sub domain 확인 등 자주 사용합니다.)됩니다. 이 메서드는 String 클래스에 포함되어 있으며, 다양한 사용 사례를 지원하는 여러 오버로드 버전을 제공합니다.


---

문법:

int indexOf(int ch)                  // 특정 문자의 첫 번째 위치를 반환
int indexOf(int ch, int fromIndex)   // 특정 위치 이후의 첫 번째 문자의 위치를 반환
int indexOf(String str)              // 특정 하위 문자열의 첫 번째 위치를 반환
int indexOf(String str, int fromIndex) // 특정 위치 이후의 하위 문자열 첫 번째 위치를 반환


---

주요 특징:

1. 인덱스는 0부터 시작합니다.
2. 찾는 문자나 하위 문자열이 없으면 -1을 반환합니다.




---

예제:

1. 특정 문자의 첫 번째 위치 찾기

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        int index = str.indexOf('o');
        System.out.println("문자 'o'의 위치: " + index); // 출력: 4
    }
}


---

2. 특정 위치 이후의 문자의 첫 번째 위치 찾기

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        int index = str.indexOf('o', 5);
        System.out.println("5번 인덱스 이후 문자 'o'의 위치: " + index); // 출력: 8
    }
}


---

3. 특정 하위 문자열의 첫 번째 위치 찾기

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        int index = str.indexOf("World");
    //-1보다 클때 문자열 존재
      if(index > -1) System.out.println("문자열 존재함 'World'의 위치: " + index); // 출력: 7

    }
}


---

4. 문자열을 찾을 수 없는 경우

public class Main {
    public static void main(String[] args) {
        String str = "Hello, World!";
        int index = str.indexOf("Java");
        System.out.println("'Java'의 위치: " + index); // 출력: -1
    }
}


---

indexOf() 메서드는 문자열 내에서 원하는 문자나 하위 문자열을 효율적으로 검색할 수 있는 강력한 기능을 제공합니다.


'기타' 카테고리의 다른 글

[기타]SQLSTATE=08003 오류  (0) 2025.04.03
[JAVA]subtract  (0) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24
DECLARE EXIT HANDLER RESIGN  (0) 2024.12.24
2025년 연말정산 간소화 서비스  (0) 2024.12.24

최근 데이터베이스 및 애플리케이션 설계에서 Oracle과 같은 RDBMS에서 프로시저 및 트리거 사용을 권장하지 않는 경우가 종종 있습니다. 이는 특정 환경과 설계 철학의 변화로 인한 것이며, 그 배경에는 여러 가지 이유와 대안이 있습니다.


프로시저 사용 권장 하지 않는 이유

  1. 비즈니스 로직의 분리 필요
    • 현대적인 애플리케이션 설계에서는 비즈니스 로직을 데이터베이스(프로시저)보다는 애플리케이션 계층(서버 코드)에서 처리하도록 권장합니다.
    • 이는 코드 가독성, 테스트, 디버깅 및 유지보수성을 향상시키는 데 도움을 줍니다.
  2. 멀티 플랫폼 지원의 어려움
    • 프로시저는 특정 데이터베이스 시스템(Oracle, MySQL 등)에 종속됩니다.
    • 애플리케이션이 여러 데이터베이스를 지원해야 할 경우, 데이터베이스 종속적인 코드는 이식성이 떨어집니다.
  3. 확장성 문제
    • 클라우드 기반 환경이나 마이크로서비스 구조에서는 데이터베이스가 주로 데이터 저장에 집중하고, 비즈니스 로직은 별도의 서비스에서 처리하는 것이 일반적입니다.
    • 프로시저는 데이터베이스 부하를 증가시킬 수 있어 확장성을 저하시킬 가능성이 있습니다.
  4. 디버깅 및 테스트의 어려움
    • 프로시저 내의 로직은 일반적인 애플리케이션 코드보다 디버깅과 테스트가 어렵습니다.
    • 특히, 버전 관리나 테스트 자동화 도구와의 통합이 제한적입니다.
  5. 데이터베이스 락 및 동시성 이슈
    • 프로시저에서 복잡한 트랜잭션을 처리하는 경우, 잠금 문제나 성능 병목이 발생할 수 있습니다.
  6. CI/CD와의 통합 제한
    • 현대적인 DevOps 환경에서는 코드 배포가 자동화되어야 하지만, 데이터베이스 프로시저는 일반 애플리케이션 코드처럼 쉽게 통합하기 어렵습니다.

프로시저 대신 권장되는 대안

  1. 애플리케이션 계층에서 처리
    • 비즈니스 로직은 Python, Java, Node.js, .NET 등 애플리케이션 레이어에서 처리하도록 설계.
    • 데이터베이스는 단순히 데이터 저장, 검색 및 트랜잭션 관리를 담당.
  2. ORM (Object-Relational Mapping) 사용
    • Hibernate, Django ORM, SQLAlchemy와 같은 ORM 도구를 사용하여 데이터베이스 작업을 추상화.
    • 이식성과 유지보수성을 향상시킴.
  3. 마이크로서비스 아키텍처
    • 데이터베이스와 비즈니스 로직을 분리하여 각각 독립적으로 확장 가능하게 설계.
  4. Stored Procedure 최소화
    • 프로시저를 사용해야 하는 경우, 데이터 무결성 보장이나 성능 최적화 등 특정 목적으로 제한적으로 사용.
  5. 데이터 처리 전용 엔진
    • 대량의 데이터 처리를 위해 ETL 도구(Talend, Informatica 등)나 데이터 분석 플랫폼(Spark, BigQuery 등)을 사용.

프로시저 사용이 여전히 유효한 경우

권장하지 않는 경향이 있지만, 특정한 경우에는 프로시저를 사용하는 것이 여전히 유용합니다.

  1. 데이터베이스와 밀접한 작업
    • 데이터베이스 레벨에서의 복잡한 계산이나 집계 작업.
    • 예: 대규모 OLAP 시스템에서의 데이터 처리.
  2. 보안
    • 데이터베이스 내부에서만 실행되어야 하는 민감한 로직(예: 암호화, 데이터 접근 제한).
  3. 네트워크 부하 감소
    • 애플리케이션과 데이터베이스 간의 통신을 최소화하기 위해 다량의 데이터를 데이터베이스 내부에서 처리.

결론

프로시저 사용을 권장하지 않는 것은 트렌드와 설계 철학의 변화에서 비롯된 것이지만, 특정 상황에서는 여전히 유용할 수 있습니다. 따라서, 사용 여부는 시스템의 요구사항, 설계 목표, 성능, 유지보수성 등을 종합적으로 고려하여 결정해야 합니다.

 

'기타' 카테고리의 다른 글

[JAVA]subtract  (0) 2025.01.07
[JAVA]indexOf()  (1) 2025.01.07
DECLARE EXIT HANDLER RESIGN  (0) 2024.12.24
2025년 연말정산 간소화 서비스  (0) 2024.12.24
TOAD에서 테이블/컬럼/뷰/트리거/ 프로시저 검색하는 방법  (1) 2024.12.23

DECLARE EXIT HANDLER RESIGN는 데이터베이스 관리 시스템(DBMS)에서 사용되는 절차로, 주로 MySQL 및 MariaDB와 같은 관계형 데이터베이스 관리 시스템에서 사용됩니다. 이 절차는 스토어드 프로시저(Stored Procedure) 또는 트리거(Trigger) 내부에서 발생할 수 있는 오류 또는 예외를 처리하는 데 사용됩니다.

EXIT HANDLER는 특정 조건이 발생했을 때 실행할 코드 블록을 정의하는 데 사용되며, RESIGNAL 키워드와 결합하여 발생한 예외를 다시 호출자(Caller)로 전달하는 역할을 합니다.


---

구문 설명

DECLARE EXIT HANDLER FOR <condition>
BEGIN
    RESIGNAL;
END;


---

구성 요소

1. DECLARE EXIT HANDLER
특정 오류나 상태 조건(Condition)이 발생했을 때 실행할 핸들러를 선언합니다.


2. <condition>

처리할 예외 조건을 지정합니다. 조건은 일반적으로 다음 중 하나일 수 있습니다:

SQLEXCEPTION: SQL 예외가 발생했을 때.

SQLWARNING: SQL 경고가 발생했을 때.

NOT FOUND: 특정 조건이 만족되지 않을 때.




3. RESIGNAL

현재의 오류를 상위 호출자(예: 클라이언트 애플리케이션)로 다시 전달합니다.

핸들러 내부에서 오류를 중단하지 않고 다른 곳에서 처리할 수 있도록 하는 데 유용합니다.



4. 코드 블록

핸들러에서 실행할 SQL 코드 블록을 정의합니다. RESIGNAL은 이 코드 블록에서 다시 예외를 전달할 때 사용됩니다.





---

예제

1. 간단한 EXIT HANDLER 사용 예

DELIMITER $$

CREATE PROCEDURE Example_Procedure()
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        -- 오류가 발생하면 메시지를 상위 호출자로 전달
        RESIGNAL;
    END;

    -- 의도적으로 오류 발생
    INSERT INTO non_existing_table VALUES (1);
END$$

DELIMITER ;

위 코드에서 non_existing_table에 데이터를 삽입하려고 시도할 때 테이블이 존재하지 않으므로 오류가 발생합니다.

EXIT HANDLER는 해당 오류를 잡고 RESIGNAL을 통해 오류를 호출자에게 다시 전달합니다.


2. 여러 조건 처리 예

DELIMITER $$

CREATE PROCEDURE Example_MultipleHandlers()
BEGIN
    -- SQL 경고 핸들러
    DECLARE EXIT HANDLER FOR SQLWARNING
    BEGIN
        RESIGNAL;
    END;

    -- SQL 예외 핸들러
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        RESIGNAL;
    END;

    -- NOT FOUND 핸들러
    DECLARE EXIT HANDLER FOR NOT FOUND
    BEGIN
        RESIGNAL;
    END;

    -- 의도적으로 오류 발생
    INSERT INTO non_existing_table VALUES (1);
END$$

DELIMITER ;

조건별로 다른 핸들러를 선언할 수 있습니다.



---

사용 시 주의점

1. 오류 전파: RESIGNAL을 사용하면 오류가 호출자에게 다시 전달되므로, 호출자는 해당 오류를 적절히 처리해야 합니다.


2. 성능 영향: 잘못된 예외 핸들링은 성능에 영향을 줄 수 있으므로, 오류가 자주 발생하지 않도록 사전에 방지하는 것이 중요합니다.


3. 정확한 조건 지정: DECLARE EXIT HANDLER는 정확한 조건을 지정하지 않으면 의도치 않은 동작을 초래할 수 있습니다.




---

이와 같은 방식으로 DECLARE EXIT HANDLER와 RESIGNAL을 결합하여 데이터베이스 오류를 효과적으로 관리할 수 있습니다.


2025년 연말정산 간소화 서비스는 근로자들이 국세청 홈택스에서 소득 및 세액 공제 증빙자료를 쉽게 확인하고 활용할 수 있도록 제공되는 서비스입니다. 주요 일정과 특징은 다음과 같습니다.



간소화 서비스 일정



서비스 제공 시작일: 2025년 1월 15일
국세청 홈택스에서 간소화 자료를 확인하고 다운로드 가능.

간소화 자료 일괄 제공 신청 기간:
2024년 12월 1일부터 2025년 1월 19일까지.
근로자가 동의하면 회사가 해당 자료를 일괄적으로 받을 수 있음.

자료 제출 마감일: 2025년 2월 28일
간소화 서비스에서 제공되지 않는 자료는 근로자가 별도로 수집 후 회사에 제출해야 함.




간소화 서비스에서 제공하는 항목




1. 보험료: 건강보험, 생명보험 등 공제 가능한 보험료 내역.
2. 의료비: 병원, 약국 등에서 지출한 의료비 내역.
3. 교육비: 본인 및 부양가족의 교육비 지출 내역.
4. 신용카드 사용액: 소득공제가 가능한 신용카드, 체크카드 사용 내역.
5. 기부금: 공제가 가능한 기부금 납부 내역.





주의사항



1. 누락 자료: 일부 항목은 간소화 서비스에서 자동 제공되지 않으므로, 관련 자료를 직접 준비해야 합니다(예: 개인 간 거래 영수증, 기타 특정 공제 항목).
2. 개인정보 보호: 회사에 자료를 제공하려면 국세청 홈택스에서 동의 절차를 완료해야 함.
3. 기한 준수: 공제 항목별 자료를 기한 내에 제출하지 않으면 세액공제를 받지 못할 수 있음.

 






Toad에서 Object Search 기능을 사용하는 방법은 다음과 같습니다. 이 기능을 통해 데이터베이스의 특정 객체(테이블, 뷰, 트리거, 프로시저 등)를 검색할 수 있습니다.

테이블 변경 시 영향도 검사할 경우, 트리거에서 데이터 변경이 일어날 경우 해당 트리거를 추적할 때 유용합니다.
개인적으로 프로시저 내 특정 테이블, 칼럼 검색으로 영향도 체크한다거나 특정 칼럼 사용유무를 빠르게 확인하기 위해 사용합니다.



Object Search 실행

1. Toad를 실행합니다.
2. 상단 메뉴에서 "Search" → **"Object Search"**를 선택합니다.


검색 조건 설정
Object Search 창이 나타나면 아래 항목을 설정합니다:

1. Search Text: 검색하고자 하는 텍스트(예: 테이블 이름, 칼럼 이름 등)를 입력합니다.

2. Object Types: 검색할 객체 유형을 선택합니다. 예를 들어, 테이블, 뷰, 프로시저, 트리거 등.

3. Schemas: 검색 범위를 지정합니다. 특정 스키마를 선택하거나 전체 스키마를 검색할 수 있습니다.

4. Options:
Case Sensitive: 대소문자를 구분하여 검색합니다.
Contains: 입력한 텍스트를 포함하는 객체를 검색합니다.
Exact Match: 텍스트가 정확히 일치하는 경우만 검색합니다.


검색 실행
모든 조건을 설정한 후, 하단의 "Search" 버튼을 클릭합니다.


결과 확인
검색 결과가 새로운 탭에 표시됩니다.
결과 목록에서 원하는 객체를 더블 클릭하면 해당 객체의 세부 정보를 확인하거나 편집할 수 있습니다.


검색 결과 필터링
필요에 따라 결과를 정렬하거나 필터를 적용하여 원하는 정보를 빠르게 찾을 수 있습니다.





'기타' 카테고리의 다른 글

[JAVA]indexOf()  (1) 2025.01.07
프로시저 및 트리거 사용을 권장하지 않는 경우  (0) 2024.12.24
DECLARE EXIT HANDLER RESIGN  (0) 2024.12.24
2025년 연말정산 간소화 서비스  (0) 2024.12.24
publish vs build  (1) 2024.12.19
Publish와 Build의 차이


1. Build

의미: 소스 코드를 컴파일하고, 리소스를 처리하여 실행 가능한 파일(예: .class, .jar, .war 등)을 생성하는 작업.

작동 방식:

소스 코드(Java, JSP, HTML, CSS 등)를 바이트 코드로 변환합니다.

빌드 과정에서 오류가 발생하면 해당 오류가 Eclipse의 "Problems" 뷰에 표시됩니다.

빌드는 Eclipse의 자동 빌드(Automatic Build) 기능에 의해 코드 변경 시 자동으로 수행될 수 있습니다.

일반적으로 개발 중인 코드의 수정 사항이 바로 반영됩니다.


사용 시점:

코드를 수정할 때, 빌드는 자동으로 트리거되거나 수동으로 Project > Clean 또는 Build All을 실행할 때 수행됩니다.


결과물: .class 파일, WAR 파일, JAR 파일 등.



2. Publish

의미: 빌드된 결과물을 서버(Web Server, Application Server)에 배포하는 작업.

작동 방식:
빌드된 파일(.class, .war 등)을 서버의 배포 디렉터리로 복사합니다.
서버에 있는 기존 파일을 대체하거나 덮어씁니다.
변경 사항이 서버에 적용되며, 서버의 재시작 또는 재로드(reload)가 필요할 수 있습니다.

사용 시점:
서버에 배포할 때 필요합니다. 빌드는 개발 중에 지속해서 이루어지지만, Publish는 서버에 적용해야 할 때 명시적으로 수행합니다.

Eclipse의 Servers View에서 특정 서버(예: Tomcat)를 우클릭하고 Publish를 선택하면 수행됩니다.

결과물: 빌드된 결과물을 서버의 webapps 디렉터리 또는 해당 서버의 배포 폴더에 복사하여 서비스가 갱신됩니다.



주요 차이점 요약


Build: 개발자가 소스 코드를 컴파일하고 실행 파일을 만드는 과정.

Publish: 빌드된 파일을 서버에 배포하여 서비스에 반영하는 과정.



보통, Eclipse에서는 코드를 수정하면 자동 빌드가 실행되고, 수정 사항을 서버에 반영하기 위해서는 명시적으로 Publish를 해야 합니다. Build와 Publish는 비슷해 보이지만, 개발(빌드)과 배포(퍼블리시)라는 전혀 다른 개념입니다.


+ Recent posts