반응형

전체 글 68

자바 예외 재정의 규칙

자바 예외 재정의 규칙Runnable 인터페이스의 run() 메서드를 구현할 때 InterruptedException 체크 예외를 thrwos 할 수 없는 이유는 자바의 규칙 때문이다.public interface Runnable { void run();}자바에서 메서드를 재정의 할 때, 재정의 메서드가 지켜야할 예외 관련 규칙은체크 예외부모 메서드가 체크 예외를 던지지 않는 경우, 재정의된 자식 메서드도 체크 예외를 던질 수 없다.자식 메서드는 부모 메서드가 던질 수 있는 체크 예외의 하위 타입만 던질 수 있다.언체크(런타임) 예외예외 처리를 강제하지 않으므로 상관없이 throw 할 수 있다.Runnable 인터페이스의 run() 메서드는 아무런 체크 예외를 throw 하지 않는다. 따라서 Run..

Java 2024.09.01

[GitHub Action] Job_Runner

Job Runner란?Job이 실행되는 환경을 정의하며, 다양한 OS가 지원된다. OS가 지원되는 이유는 보통 Runner에서 코드를 다운 받고, 빌드를 위한 소프트웨어 설치 및 다양한 사전 실행 작업 및 빌드를 해야하기 때문에 OS환경이 필요할 수 있다.jobs: job_1: name: Job 1 runs-on: ubuntu-latest steps: # do something..Job_Runner 실행 방식Job Runner는 GitHub Hosting Runner, Self-hosted runner 두 가지 방식으로 나뉜다. GitHub Hosting RunnerGitHub Action에서 제공하는 공식적인 Runner로 GitHub 에서 관리하는 클라우드 기반 Run..

DevOps 2024.08.27

[GitHub Action] Job

Jobworkflow 내에서 실행되는 단위 작업에 대한 정의로 각각의 Job은 개별의 실행기(Runner)에서 수행되며, default는 동시에 병렬로 수행되지만, 순차적으로 수행도 가능하다.정의되는 설정id : 작업에 대한 고유 식별자name : 작업 이름. UI상 작업 이름을 표시하게된다.runs-on : 실행기(runner)에 대한 정의. 작업을 수행할 머신의 형식을 결정한다.step : Job 내에서 순차적으로 수행할 실제 명령name: sampleon: workflow_dispatchjobs:build: name: Build Test runs-on: ubuntu-lastest steps: - name: Checkout uses: actions/checkout@v2 - name: ..

DevOps 2024.08.27

[GitHub Action] workflow

Workflow자동화 작업의 가장 상위 개념으로, 하나 잇앙의 작업(Job)을 실행시키는 자동화 구성, GitHub 레포지토리(Repository) 내 ./github/workflows 라는 디렉토리에 YAML 파일 단위로 정의된다.레포지토리에서 이벤트(푸시, 이슈 생성)가 발생할 때 자동으로 실행한다. 구성name : UI에 표기될 워크플로우 이름on : 워크플로우 실행을 위한 트리거를 정의jobs : 워크플로우에서 실행하고자 하는 작업에 대한 정의로, 하나 이상의 작업(job) 으로 구성된다. 각 작업은 별도의 실행기(Runner) 로 구성된다. trigger워크플로우를 실행하게 하는 이벤트로 트리거를 어떻게 설정하느냐에 따라 워크플로우 실행 조건을 다르게 구성한다. 트리거의 종류는 4가지가 있..

DevOps 2024.08.23

[GitHub Action] GitHub_Action 기본 구성 및 활용

Github ActionGitHub 에서 제공하는 CI/CD DevOps 파이프라인 자동 플랫폼이다. 깃허브 액션의 작동 단계는 코드를 작성하고 특정 이벤트 트리거를 통해서 '실행기'에서 정의된 작업을 수행한다. 워크플로우?이벤트 발생시, 어떠한 행위를 할 것인가에 대한 작업을 정의한다.워크플로우(Workflow) 구성 요소Job : 워크플로우 내 작동하는 작업 단위Runner(작업기) : 작업(Job)별 별도의 공간에서 실행, 작업 공간에 대한 정의다. 작업간 내용 공유는 기본적으로 제공되지 않는다.Step : 작업(Job) 내 개별 실제 수행되는 액션에 대한 정의 (단계들의 묶음)name: Basic Sample # 워크플로우를 식별할 수 있는 이름 on: workflow_dispatch # 이벤트..

DevOps 2024.08.22

real-mysql [VARCHAR vs TEXT]

VARCHAR VS TEXTVARCHAR와 TEXT 타입의 공통점은 문자열 속성 값을 저장한다는 점과 최대 65,535 Bytes 까지 저장 가능하다는 점이고,차이점으로는 VARCHAR 타입 컬럼에는 지정된 글자 수 만큼만 데이터 저장이 가능하다. VARCHAR(10) -> 10글자 이하만 저장 가능 하다TEXT 타입 컬럼은 인덱스 생성 시 반드시 Prefix 길이 지정이 필요하다. CREATE INDEX ix_text_column ON table(text_column(100));TEXT 타입 컬럼은 표현식으로만 디폴트 값을 지정할 수 있다.CREATE TABLE tb1 (col TEXT DEFAULT 'abc') -> 에러CREATE TABLE tb1 (col1 TEXT DEFAULT('abc''))..

데이터베이스 2024.06.17

real-mysql [CHAR VS VARCHAR]

CHAR VS VARCHARCHAR, VARCHAR 모두 문자열 저장용 컬럼으로 사용되며, 최대 저장 가능 문자 길이를 명시한다.두가지 타입의 차이점은 값의 실제 크기에 관계없이 고정된 공간 할당 여부를 결정하며 최대 저장 길이의 차이가 있다.차이점CHAR : 저장되는 문자열 길이의 상관없이 설정된 공간만큼 무조건 할당해서 사용하고 255 글까지만 사용할 수 있다.VARCHAR : 저장되는 문자열의 길이만큼만 공간을 할당하고, 16383 글자까지 사용할 수 있다. VARCHAR와 가변 길이 문자셋을 사용하는 CHAR는 저장된 값에 대한 길이를 관리하며 0 ~ 255 bytes는 length-byttes : 1 로, 256 ~ 65535 bytes는 length-bytes : 2로 관리한다. CHAR ..

데이터베이스 2024.06.16

sliceTest - WebTestClient

WebTestClientspring-webflux에서 통신객체로 사용되는 webclient와 유사하며, webClient에서 제공되는 메서드를 동일하게 사용할 수 있고 WebTestClient는 별도의 생성 메서드와 body, cookie, header, status 검증 메서드를 제공한다. WebTestClient 생성webTestController를 생성할 수 있는 방법은 총 5가지가 있다. bindToController : controller들을 제공하여 WebTestClient를 생성한다. bindToRouterFunction : RouterFunction들을 제공하여 WebTestClient를 생성한다.bindToApplicationContext : ApplicationContext 내의 b..

테스트코드 2024.06.13

sliceTest - ContextConfiguration, Mock Bean

Slice TestController는 http 요청을 받아서 처리하는 레이어에 해당하며 프레젠테이션 레이어라 하고,Repository는 데이터베이스에 연결하여 데이터의 조회, 저장, 수정, 삭제 등의 CRUD를 수행하는 데이터 엑세스 레이어에 해당한다.@ExtendWith(MockitoExtension.class)public class UserRepositoryTest { @Mock UserR2dbcRepository userR2dbcRepository; @Test void when_find_by_id_returns_user_mono() { // given var user = new UserEntity(1L, "taeil", 20, "1", "1234");..

테스트코드 2024.06.11

Private Method Test

Private Method Testprivate 메서드는 테스트를 해야할까?https://shoulditestprivatemethods.com 이 사이트로 들어가면 정답이 있다.사이트에 접속하면 NO 라는 글자가 나오고, 개발자 도구를 열면 주석으로 비공개 메서드 테스트를 고려할 때마다 코드에서는 책임을 제대로 할당하지 않았다는 메세지를 표시한다. 라는 문구가 적혀있다. private 메서드는 테스트하면 안된다는 뜻이다. 그래서 테스트하면 왜 안 되어요??private 메서드를 테스트하면 안되는 이유는 테스트 대상이 되는 클래스 입장에서 테스트 클래스는 일반적인 클래스들과 마찬가지로 caller에 해당한다. caller에게 private 메서드를 노출하지 않는 것처럼 또한 테스트 클래스에게도 priva..

테스트코드 2024.05.29
반응형