전체보기

    [공지] 블로그 이전합니다.

    [공지] 블로그 이전합니다.

    블로그 원문을 노션에 작성하고 티스토리에 옮겨 적고 있었습니다. 이 과정에서 좀.. 마크다운이 잘 맞지 않거나 예쁘게 정리해두었는데 망가지는 경우가 많아져서 최근에 velog로 10개정도 포스팅 해보니 잘 맞더군요. 그래서 이전을 결정하게 되었습니다. 기존에 있던 글들을 옮겨 새로 정리해두려 합니다.. 옮길 생각에 벌써 정신이 아찔하네요.. 저의 글들은 아래 주소에서 확인 가능하니 많이 많이 봐주시면 감사하겠습니다 :) https://velog.io/@ieunune ieunune (Noah) - velog 메멘토 패턴 객체의 상태를 저장하고 복원하기 위한 행동 패턴객체의 상태를 캡슐화하여 외부에서 접근할 수 없도록 하고,나중에 필요할 때 상태를 복원할 수 있는 기능을 제공객체의 상태 변 velog.io

    Spring Batch 기본 구조

    Spring Batch 기본 구조

    구조설명 앞서 Spring Batch 시작하기에서 설명했던 대로 실행을 해보면 Bean만 생성했을 뿐인데, 자동으로 실행이 된다. 그 이유를 아래 내부 구조 그림으로 이해해보자 Spring Batch는 Bean이 생성되면 JobLauncher 객체에 의해서 Job을 수행한다. 1. JobLauncher 2. Job 3. Step JobRepository는 데이터베이스나 메모리에 스프링 배치가 실행될 수 있도록 메타데이터를 관리하는 클래스이다. 전반적인 데이터를 관리하기 위한 용도로 사용되는 클래스라고 이해하면 될 것 같다. Job Job은 JobLauncher에 의해 실행 Job은 배치의 실행 단위를 의미 Job은 N개의 Step을 실행할 수 있으며, 흐름(Flow)을 관리할 수 있음. ex. A Ste..

    Spring Batch 시작하기

    Spring Batch 시작하기

    🤔 사용하는 이유 Spring Batch는 대량의 데이터를 처리하는 데 사용되는 오픈 소스 프레임워크입니다. Spring Batch는 매우 유연하며 일괄 처리 (Batch Processing) 작업을 처리하는 데 사용됩니다. 이를 위해 Spring Batch는 작업을 단계별로 분할하여 각 단계를 실행하고 트랜잭션 관리와 예외 처리를 제공합니다. 샘플 Spring Batch 프로젝트를 만드는 방법은 다음과 같습니다. 1. Spring Boot 프로젝트 생성 Spring Boot CLI를 사용하여 새 Spring Boot 프로젝트를 생성합니다. $ spring init --dependencies=web,batch my-batch-project 2. 의존성 추가 build.gradle 파일에 Spring Ba..

    REST API 디자인 가이드

    REST API 디자인 가이드

    🤙🏻 디자인 규칙 URI을 디자인할 때 자주 언급 되는 7가지 규칙을 정리하였다. 1. URI 마지막에 슬래시(/)를 포함하지 않는다. URI 경로 마지막은 반드시 문자여야 한다. 슬래시(/) 다음에 의미 있는 값을 추가하지 않으면 혼동이 올 수 있다. X : http://api.canvas.com/shapes/ O : http://api.canvas.com/shapes 2. 슬래시(/)를 사용하여 계층적 관계를 나타낸다. 슬래시 문자는 리소스 간의 계층적 관계를 나타내기 위해 URI 경로에 사용된다. ex) http://api.canvas.com/shapes/polygons/quadrilaterals/squares 3. URI 가독성을 높이려면 하이픈(-)을 사용해야 한다. URI를 사람들이 쉽게 스캔..

    [GitHub] Repository to Organization 옮기기 (With. Transfer)

    [GitHub] Repository to Organization 옮기기 (With. Transfer)

    🤔 Why? 깃허브를 사용하며 학습용으로 작성되는 리포지토리(일명, 노는소스)와 프로젝트용으로 작성되는 리포지토리가 한 공간에 같이 저장되니 관리하는데 불편을 겪어 분리하고자 방법을 찾고 있었다. 그러던 중, GitHub에서 제공하고 있는 Organization 기능을 보고 개인용으로 만들어서 개인 학습 프로젝트들을 분리하는 용도로 사용하려고 했다. 분리하는데에 가장 필요했던 부분은 현재 사용하고 있는 Repository들을 Organization으로 옮기려고 찾아보니 Tranfer라는 기능이 있어 소개를 하려고 한다. 😎 How? 1. 저장소를 소유한 조직에서 관리자 또는 소유자 권한이 있는 개인 계정에 로그인합니다. 2. GitHub.com에서 리포지토리의 기본 페이지로 이동 후 ⚙️Settings에..

    무료 웹 에디터 추천 (tiny)

    무료 웹 에디터 추천 (tiny)

    🔍 새로운 발견 인프런 대시보드 기능들을 구경하다가 자기소개 영역의 웹에디터가 눈에 띄었다.! 뭔가 심플하면서 다양한 기능들을 제공하는 유용한 에디터인 것 같아서 검색을 해보았다. 타이니라는 웹 데이터였고, 이건 글을 쓰다가 알게된 내용인데 티스토리 에디터는 뭘쓰지 하고 보니 마찬가지로 타이니 웹 데이터를 사용하고 있는걸 발견했다.. 신기..😮 오픈소스라 무료로 사용 가능하고, 다양한 언어들의 샘플 코드까지 제공하고 있어서 쉽게 개발을 할 수 있다. Tiny The Most Advanced WYSIWYG HTML Editor | Trusted Rich Text Editor | TinyMCE TinyMCE is the most advanced WYSIWYG HTML editor designed to sim..

    SQLD 자격증 요점 정리

    SQLD 자격증 요점 정리

    📘 SQLD 📢 노션 링크를 공유합니다. 📢 PDF 다운를 공유합니다. 👀 PREVIEW 🤍 SQL 연산 순서 FROM WHERE GROUP BY HAVING SELECT ORDER BY 💙 SQL 문 DML (데이터 조작 언어) SELECT, INSERT, UPDATE, DELETE DDL (데이터 정의 언어) ALTER, CREATE, MODIFY, DROP TCL (트랜잭션 제어 언어) ROLLBACK, COMMIT DCL (데이터 제어 언어) GRANT, REVOKE 💙 ALIAS SELECT 절에서 사용가능하고 WHERE 절에서는 사용 불가 as 예약어로 사용하며, 생략 가능 SELECT col [as] name FROM table; 🤍 CONCAT Select col1 + col2 + col3..

    [MySQL] 데이터베이스 제약 조건 확인 하는 방법

    [MySQL] 데이터베이스 제약 조건 확인 하는 방법

    회사 업무에서 데이터 원복을 위해 삭제해야하는 일이 생겼다. 그래서 별 생각없이 늘 하던대로 정산 데이터를 삭제하려고 했는데 생각보다 복잡했다. 시스템 버전이 있는데 현재는 거의 폐기 수준의 로우 버전이라 참조하고 있는 테이블도 달랐고 제약조건에 따라 순서대로 지워야 하였지만 테이블 제약 조건을 확인하고 지우는 방법을 터득하기 위해 여러번 뒹글고 나서 정리한다. 🤔 제약 조건 확인 방법 SELECT * FROM information_schema.key_column_usage WHERE TABLE_SCHEMA = '스키마' AND REFFERENCED_TABLE_NAME = '테이블명'; 우선, 제약 조건을 확인하기 위해서는 삭제 하려는 데이터의 테이블이 어디에서 참조 하고 있는지를 알아야한다. 상단 쿼리..

    [MySQL] Lost Connection to MySQL server during query

    [MySQL] Lost Connection to MySQL server during query

    🤔 문제 발견 Mysql workbench 프로그램에는 쿼리 수행 시간(30초)이 기본값으로 설정되어 있다. 30초가 넘어가는 경우 프로그램에서는 Error Code : 2013. 메시지를 출력하며 종료된 것 처럼 보이지만, SHOW PROCESSLIST; 상기 명령어를 통해서 확인을 해보면, 아직 수행 중인 쿼리를 확인 할 수 있다. 이미 30초가 넘도록 수행되었지만 결과를 얻지 못한 쿼리는 슬로우 쿼리라고 보는 것이 옳다. 🔥 조치 쿼리 튜닝이 반드시 필요하며, 일단 다른 시스템에서 접근 했을 때 자원을 점유하고 있게되면 사용자가 결과값을 늦게 받거나 못받을 경우가 생길 수 있다. 급한 불을 끄기 위해 쿼리를 죽일 수 있도록 했다. KILL QUERY [ID]; [ID] 부분은 수행 중인 쿼리를 확인..

    [React] 'react-scripts'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.

    [React] 'react-scripts'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.

    🤨 문제 발생 집에서 리액트 프로젝트 작업을 하고 나서 푸쉬를 한 뒤, 노트북에서 git에서 clone한 react 프로젝트를 실행하려고 npm start 명령어를 입력했는데 에러가 발생하였다. 'react-scripts'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 🚀 트러블슈팅 npm 버전 문제 인가 싶어서 에러 발생하는건가 싶어서 진행 npm update npm 실행 npm start 위 방법으로도 해결 되지 않았다. npm이 제대로 설치 되지 않아 react-scripts를 찾지 못한 원인 으로 추측 하고 재설치를 진행했다. npm install 😂 해결 react 프로젝트를 git에서 clone받게되면 node_module이 다운로드 되어 있지 않은 것이..

    [H2] 버전 확인 명령어

    [H2] 버전 확인 명령어

    😎 문제 발생 H2 버전 포맷 에러가 발생해서 버전 확인을 해보려고 구글링을 통해 SQL문을 찾았다. SELECT H2VERSION() FROM DUAL; 😃 확인 방법 H2를 실행시키고, Console 창에 입력 한 후 결과값에서 확인할 수 있었다. 😍 확인 후 조치 Spring Boot 버전과 맞는 H2 버전은 1.4.200 이였고, 설치한 H2의 버전은 2.1.210 버전으로 인한 문제가 발생되었던 것이다. 아래 링크에서 이전 버전을 다운로드 받을 수 있고 버전 문제를 해결 할 수 있다. H2 지난 버전 다운로드 받는 곳

    [금융] 대사의 뜻

    금융권에서는 흔히 '거래대사', '잔액대사' 등등 '대사' 라는 용어를 많이 사용하고 있는데요. '대사' 라고 한다면 무언가를 서로 일치하는지 정확성을 검증하는 절차라고 말할 수 있습니다. 의미상 한자로 표현하자면 '對(대답할 대)査(사실할 사)'로 표현할 수 있을 것이고, 알기 쉽게 순화를 하자면 '대조 확인' 정도가 될 것 같습니다. 표준 국어 대사전에서는 특정 분야에 국한되어 사용함으로 등재되지 않았고, 이 단어 자체는 순화해서 표현하는 것을 권고하고 있습니다. 대사의 뜻이 무엇인지 알았으니 순화해서 '대조 확인하다'라고 표현하면 될 것 같습니다.

    [금융] 적요의 뜻

    적요는 사전적 의미로는 요점을 뽑아 적음. 또는 그 기록 이며, 간단히 설명하면 계좌에서 각 입출금 항목에 대해 알아보기 쉬운 간단한 내용이라고 생각하시면 됩니다. 금액 입/출금 구분 적요 10,000 출금 게시글 작성 후원 5,000 입금 용돈

    [Java] 1차원 배열에서 중복되지 않는 값 찾기

    [Java] 1차원 배열에서 중복되지 않는 값 찾기

    int[] arr = new int[]{1,2,1,3,3,2,4}; 위와 같은 정수형 배열에서 중복되지 않는 4의 값을 가져오고 싶을 때, 1차원 배열에서 중복되지 않는 정수를 찾기 위해서는 XOR 연산이 필요하다. 명제 P 명제 Q P ⊻ Q 1 1 0 1 0 1 0 1 1 0 0 0 [XOR 진리표] XOR의 연산 과정을 살펴보면, 다음과 같다. 1 2 1 3 3 2 4 000(0) 001(1) 001(1) 010(2) 011(3) 001(1) 010(2) 001(1) 011(3) 001(1) 010(2) 010(2) 000(0) 100(4) 001(1) 011(3) 010(2) 011(3) 010(2) 000(0) 100(4) [연산 과정] int[] arr = new int[]{1,2,1,3,3,..

    FireBase(파이어베이스)의 기능. 장단점과 사용 이유

    FireBase(파이어베이스)의 기능. 장단점과 사용 이유

    FireBase란? "백엔드 서비스" 모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든 것을 개발해야 한다. 그러나 이는 매번 새로운 앱들과 별로 차이가 나지 않기 때문에 복잡한 과정들을 매번 개발할 때마다 하는 것은 시간낭비이다. FireBase는 이 모든 플렛폼을 프로젝트 구축 시 자동적으로 만들어 준다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요가 없고 개발하는 동안에는 서버를 구입할 필요도 없다. FireBase라는 플랫폼을 통해 프론트엔드 개발자와 백엔드 개발자의 경계가 모호해 질 것이며 적은 비용으로 매우 좋은 앱을 만들 수 있을 것이다. FireBase의 기능 대표적인 기능으로 인증, 데이터베이스, 스토리지,..

    UI와 UX의 차이점

    UI와 UX의 차이점

    더보기 한번 보고 뒤돌아서면 잊게 되는 UI UX 차이점, 🎁 '선물상자'의 비유로 다시는 까먹지 않는 개념 학습을 할 수 있다. 면접에서도 나올 수 있는 예상 질문. UI User Interface 개념 : 사용자가 마주하는 디자인, 레이아웃, 기술적인 부분을 말한다. 디자인의 구성 요소인 폰트, 색깔, 줄 간격 등 상세한 요소가 포함되고, 기술적 부분은 반응형이나 애니메이션 효과 등이 포함된다. 구글에 선물 상자라고 검색만 하더라도 수백 수천만 가지의 선물상자가 나온다. 그중에서도 UI는 선물 상자 포장지를 생각해보면 정말 다양한 디자인, 특이한 모양, 리본 묶는 기술들이 있다. 🎁 UX User eXperience 개념 : 주로 사용하는 사용자들의 경험을 분석하여 더 편하고 효율적인 방향으로 프로세..

    2022 정보처리산업기사 시험 일정 및 출제 기준

    2022 정보처리산업기사 시험 일정 및 출제 기준

    ⌚ 정보처리산업기사 시험 일정 구분 필기원서접수(인터넷) (휴일제외) 필기시험 필기합격 (예정자)발표 실기원서접수 (휴일제외) 실기시험 최종합격자 발표일 2022년 정기 산업기사 1회 2022.01.25 ~ 2022.01.28 2022.03.02 ~ 2022.03.17 2022.03.23 2022.04.05 ~ 2022.04.08 2022.05.07 ~ 2022.05.21 2022.06.17 2022년 정기 산업기사 2회 2022.03.29 ~ 2022.04.01 2022.04.17 ~ 2022.04.30 2022.05.18 2022.06.21 ~ 2022.06.24 2022.07.24 ~ 2022.08.05 2022.09.02 2022년 정기 기사 3회 2022.06.07 ~ 2022.06.10 202..

    [IntelliJ] 인텔리제이 단축키 확인하는 방법

    [IntelliJ] 인텔리제이 단축키 확인하는 방법

    😎 정말 간단하게 확인이 가능하다. 🤔 적용 방법 Shift + Shift "단축키" 입력 Enter 끝. The end. 사용자의 OS에 맞게 PDF가 제공되고 있어 MAC 유저들도 동일하게 실행하면 MAC 단축키 파일이 실행이 된다. 각 구분별로 굉장히 잘 정리해놓은 링크를 공유하니 참고하면 훨씬 더 편리한 개발 라이프가 될 것 같다. 단축키 정리 최강

    [Spring Batch] Scheduled cron Expression 크론 표현식

    [Spring Batch] Scheduled cron Expression 크론 표현식

    ☺️ 요약 설명 사용 방법 : @Scheduled(cron = "* * * * * *") 위의 사용 방법에서 *(Asterisk (아스테리스크))는 ALL(모든) 것을 의미 합니다. * 부분에 들어갈 설정 값들에 대해서 설명 드리도록 하겠습니다. 0 1 2 3 4 5 6 * * * * * * * 초 분 시 일 월 요일 년(생략 가능) 0~59 0~59 0~23 1~31 1~12 JAN-DEC 1-7 MON-SUN 📅 월 표현 방법 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 1 2 3 4 5 6 7 8 9 10 11 12 JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC 📅 요일 표현 방법 월 화 수 목 금 토 일 1 2 3 4 5 6 7 MO..

    [Spring Boot] Failed to determine a suitable driver class 에러

    [Spring Boot] Failed to determine a suitable driver class 에러

    👀 문제발견 IntelliJ Community 버전으로 JPA를 공부를 하려고 Spring Initializr에서 Gradle Project를 생성하여 최초 실행시 Reason : Failed to determine a suitable driver class 라는 에러를 만났다. 😎 확인내용 해당 에러메시지는 Spring Initializr에서 DB관련한 dependency 라이브러리 (JPA, H2 ... )를 추가하여 SpringBoot에서 최초 빌드시 application.properties 파일을 생성하게 되는데 해당 파일 안에서 DataSource 관련 정보를 찾지 못했을 때 발생한다. 🔨 버그수정 @EnableAutoConfiguration(exclude={DataSourceAutoConfig..