본문 바로가기

[WEB] Back-End Framework & Library22

728x90
반응형
[마이바티스] 변수를 정규식으로 한 번에 바꾸기 필요성 마이바티스에서 SQL(Structured Query Language)이 담긴 XML(eXtensible Markup Language) 파일을 작성하면 변수를 '#{변수명}' 또는 '${변수명}'로 입력한다. 디버깅을 위해 SQL을 테스트해야할 때 실행한 SQL이 로그로 나타나는 상황이라면 바로 디버깅을 할 수 있겠지만 그런 경우가 아니라면 변수를 특정 값으로 치환해야 하는 상황이 발생한다. 변수가 몇개 안 된다면 금방 바꾸겠지만 일반적으로는 변수가 엄청 많기 때문에 시간이 많이 필요하다. 이 경우 정규식으로 한 번에 변경할 수 있다. 정규식 텍스트 에디터에 SQL을 입력하고 바꾸기 기능에서 정규식을 활성화한 후 아래의 정규식을 입력하면 일괄적으로 값을 바꿀 수 있다. #{[a-z|A-Z|0-9|_.. 2023. 3. 3.
[2강] 스프링 프레임워크 개발환경 구축 및 예제 실행 0. 학습 목표 본 글에서는 스프링 프레임워크 개발환경을 구축하고 제가 만든 예제를 실행하는 것을 학습합니다. 제가 만든 예제는 조금씩 업데이트 될 것이며 실무적으로 스프링 기반 개발을 할 때 도움이 될 것입니다. 글과 사진으로 설명하는 것보다 동영상이 더 편하신 분들은 아래의 영상을 참고해주세요. 2강. 스프링 프레임워크 개발 환경 구축 및 예제 실행 1. 통합개발환경 설치 1-1. 통합개발환경 다운로드 스프링 프레임워크 통합개발환경(Integrated Development Environment, IDE)으로 STS(Spring Tool Suite 4)를 사용합니다. STS를 설치하기 위해 아래의 주소로 이동하여 STS 4.3.1 버전을 다운로드 받습니다. STS 4.3.1 다운로드 주소: https:.. 2023. 2. 9.
이클립스(Eclipse) 힙 메모리(Heap Memory) 상태창 활성화 이클립스 메모리 관찰 필요성 이클립스(Eclipse)의 경우 메모리 관련 문제 때문에 개발할 때 문제가 생길 수 있으므로 개발하면서 힙 메모리의 상태를 잘 관찰할 필요가 있다. 힙 메모리는 이클립스 우측 하단에 사용량을 확인할 수 있는 상태 창이 있는데 기본 설정으로는 이 창이 비활성화 되어 있어서 활성화 상태로 변경해야 한다. 이클립스 메모리 상태창 활성화 방법 아래의 사진처럼 'Window' → 'Preference' → ' General' 으로 이동하여 'Show heap status' 체크 박스를 활성화 하고 'Apply' 버튼을 눌러서 적용한다. 이렇게 설정이 잘 되면 이클립스 우측 하단에 메모리 사용량이 나타난 것을 확인할 수 있다. 참고문서 "이클립스 메모리 문제", 전자정부표준프레임워크포털.. 2023. 2. 9.
이클립스(Eclipse) 자바 버전과 메모리 크기를 설정하여 더 쾌적하게 개발하자 자바 버전과 메모리 크기를 설정하는 이유 이클립스(Eclipse)는 기본 설정 그대로 사용하면 사용할 때 매우 느린 경우가 있다. 특히 메모리가 부족한 경우 오류가 발생하면서 이상하게 실행되는 경우를 볼 수 있는데 이러면 개발할 때 큰 애로사항이 생긴다. 이 경우 자바 버전과 메모리 크기를 설정하면 이 문제를 예방할 수 있어서 쾌적하게 개발이 가능하다. 메모리 사용량을 보는 방법 아래의 사진처럼 이클립스 우측 하단에는 힙(Heap) 메모리 사용량이 나타나는데 메모리 관련 오류가 나면 할당된 메모리가 다 해제되고 이상하게 동작할 때도 있기 때문에 메모리에 여유가 있다고 생각하지 말고 구동할 때 메모리 사용량을 잘 지켜보면서 개발을 해야한다. 혹시 메모리 사용량이 보이지 않는다면 아래처럼 'Windows' .. 2023. 2. 8.
[스프링] DataSource 스프링 빈을 자바 코드로 생성하기 값을 읽어오는 방식 등의 이유로 DataSource 스프링 빈을 자바 코드로 생성해야하는 경우가 있다. 그런 경우 아래와 같은 소스 코드로 자바 빈을 생성할 수 있다. 예제 소스 연결하고자 하는 데이터베이스 맞춰서 드라이버와 주소, 계정 정보를 수정하여 사용한다. 아래 소스 코드는 스프링 프레임워크 4.0.9에서 동작하는 것을 확인했다. @Bean public DataSource dataSource() { SimpleDriverDataSource dataSourceVideo = new SimpleDriverDataSource(); dataSourceVideo.setDriverClass(org.mariadb.jdbc.Driver.class); dataSourceVideo.setUrl("jdbc:mariad.. 2022. 11. 23.
마이바티스에서 프로시저를 호출하는 방법 본 글에서는 티베로(오라클)의 데이터베이스를 사용하는 마이바티스 프로젝트에서 프로시저를 호출하는 것과 프로시저에 값을 전달하고 받는 방법을 소스 코드와 함께 설명한다. 프로시저 작성 예제 아래의 SQL(Structured Query Language)처럼 프로시저를 작성한다. CREATE OR REPLACE PROCEDURE EXAMPLE_PROCEDURE( IN_DATA IN VARCHAR2, OUT_ERROR_CODE OUT NUMBER, OUT_ERROR_MESSAGE OUT VARCHAR2 ) IS BEGIN INSERT INTO EXAMPLE_TABLE(COLUMN) VALUES(IN_DATA); OUT_ERROR_CODE := 0; OUT_ERROR_MESSAGE := '성공'; EXCEPTIO.. 2022. 11. 8.
Node.js 에서 MySQL 8.0 에 연결할 때 "does not support authentication protocol" 오류가 발생하는 경우 오류가 발생하는 이유 Node.js에서 MySQL 패키지를 설치하는 한국어 가이드 문서를 보면 흔히 구버전 MySQL을 설명하는 가이드가 많다. MySQL이 과거에는 'mysql_native_password' 인증 프로토콜을 쓰다가 현재는 'caching_sha2_password'을 사용하고 있는데 이로인해서 MySQL 8.0에 구버전 MySQL 패키지를 사용해서 연결하는 경우 아래와 같은 경고가 뜨며 연결이 되지 않는 것을 볼 수 있다. Client does not support authentication protocol requested by server; consider upgrading MySQL client 해결 방법 이 문제를 해결하는 방법은 2가지가 있다. 첫 번째 해결 방법은 인증방식을 구.. 2022. 10. 10.
[CentOS 7] Express 방화벽 허용 Node.js의 웹 개발 프레임워크인 Express의 포트를 확인하고 방화벽 설정을 해두어야 본인이 원하는 위치에서 원활하게 접속이 가능하다. CentOS 기준으로 Express 프로젝트가 사용하는 포트를 확인하고 적절한 포트를 아래의 사진처럼 입력하면 방화벽 규칙이 추가된다. firewall-cmd --permanent --zone=public --add-port=포트번호/프로토콜 아래의 명령어를 입력하여 CentOS 방화벽 규칙을 적용한다. firewall-cmd --reload 아래의 명령어를 입력하여 적용된 CentOS 방화벽 규칙을 확인한다. firewall-cmd --list-all 다시 웹브라우저로 실행한 Express 프로그램에 접속하면 아래처럼 잘 나타나는 것을 확인할 수 있다. 2022. 9. 22.
[스프링] STS(Spring Tool Suite) 4 통합개발환경 설치 스프링 부트 개발을 위해서 통합개발환경(Integrated Development Environment, IDE)으로 STS(Spring Tool Suite)를 활용할 수 있다. 본 글에서는 STS 4.15.3 버전을 설치하는 것을 안내한다. STS 다운로드 아래의 주소로 가서 STS 다운로드 페이지로 이동하여 STS 4.15.3을 받는다. 버전이 바뀌었다면 동일한 버전을 다운받아도 되고 최신 버전으로 받아도 무방하다. 이보다 최신 버전의 경우 설치과정은 비슷하나 세부적으로는 조금 다를 수 있다. STS 다운로드 주소: https://spring.io/tools STS 4 압축 해제 아래의 사진처럼 다운로드한 파일을 명령어를 입력하여 압축해제한다. java -jar spring-tool-suite-4-4... 2022. 9. 6.
[Spring/MyBatis] Null 값 허용하기 문제 정의 및 현상 MyBatis를 활용해서 개발을 하다보면 SQL(Structured Query Language) 실행 중에 아래와 같은 문구를 만날 때가 있다. 원인은 여러가지가 있겠지만 그 원인 중 하나가 SQL 내의 변수값에 NULL이 있는 경우를 본 글에서는 살펴본다. JDBC-590704:Unsupported SQL type. 위와 같은 문구가 발생하는 경우 사용하는 SQL 내 변수 값 중에 NULL이 있는지 확인해서 NULL이 있는데 아래와 같은 문구가 발생하면 본 글의 해결방법으로 해결이 가능할 확률이 높다. 전역으로 NULL 값 허용 SQL 변수 값에 NULL이 허용되도록 MyBatis 설정을 전역적(Global)으로 설정하는 방법은 아래의 문구를 MyBatis 설정에 입력하는 것이다. .. 2022. 8. 22.
Visual Studio Code를 Node.js의 통합개발환경(IDE)로 쓰자 Node.js를 편리하게 개발하기 위해서는 통합개발환경(Integrated Development Environment, IDE)을 구성하는 것이 필요하다. 통합개발환경으로 내가 추천하는 것은 Visual Studio Code이다. 무료로 사용가능하며 풍부한 확장 도구가 있어서 사용하기가 편리하기 때문이다. Node.js 통합개발환경을 Visual Studio Code로 구성하는 방법은 아래와 같다. 동영상 설명 2강. Visual Studio Code를 Node.js의 통합개발환경(IDE)으로 구성하자 1. Visual Studio Code 다운로드 아래의 주소로 가서 Visual Studio Code를 아래의 사진에 나타난 박스를 클릭하여 다운로드 한다. Visual Studio Code 다운로드 주소.. 2022. 8. 16.
이클립스에서 'Project Facets'를 강제로 지정하는 방법 이클립스(Eclipse)에서는 아래의 사진처럼 간혹 공식적으로 지원하는 버전이 제한되서 'Project Facets'를 GUI에서 설정하지 못 하는 경우가 있다. 하지만 특정 환경에서 개발을 해야한다면 강제로 설정할 필요가 있다. 그런 경우 아래의 사진처럼 프로젝트 폴더에서 '.settings'라는 폴더로 이동하여 'org.eclipse.wst.common.project.facet.core.xml'을 텍스트 에디터로 열어서 수정하면 된다. 텍스트 에디터로 facet 파일을 열면 아래의 사진처럼 설정들이 나온다. 수정하기 전에 꼭 이클립스를 종료하여야 한다. 2022. 8. 11.
스프링(Spring) 프로젝트에서 메이븐(Maven)의 생명주기(lifecyle) 관련 문제가 발생할 때 문제 발생 최근에 스프링(Spring, 전자정부) 프로젝트에서 메이븐(Maven) 관련 오류가 발생했었다. 오류 메시지는 아래와 같았는데 문제 해결이랑 전혀 관계 없는 메시지라서 한참을 헤맸다. Cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins:maven-compiler-plugin:maven-plugin:3.1:runtime Cause: invalid END header (bad central directory offset) 문제 해결 스프링 프로젝트의 메이븐 환경을 해제한 다음 기존 메이븐 저장소(Repository)를 비우고 다시 메이븐 환경을 프로젝트에 활성화한 후 메이븐 업데이트(Update)를 수행하니 해결.. 2022. 8. 9.
[CentOS 7] Forever 4.0.3 설치 Node.js(이하 노드) 프로그램은 오류가 발생하는 경우 종료되는 경우가 흔하다. 그러므로 종료되어도 자동으로 재실행되는 방법이 잘 활용되는데 자동으로 노드 프로그램을 재시작하는 프로그램인 Forever를 많이 쓴다. Forever를 설치하는 방법은 다음과 같다. Forever 설치 아래의 명령어로 입력하여 Forever를 NPM(Node Package Manger)로 설치한다. npm install forever -g 설치한 Forever 버전 확인 아래의 명령어를 입력하여 설치한 Forever 버전을 확인한다. forever --version Forever로 자동 재실행할 프로그램 설정 아래의 명령어를 입력하여 자동으로 재실행할 프로그램을 설정한다. forever start [실행할Node.js프로.. 2022. 8. 8.
[Windows 10] Node.js 설치하기 윈도우에서 Node.js를 설치하는 방법은 아래와 같다. 동영상 설명 1강. 윈도우에 Node.js를 설치하자 Node.js 다운로드 아래의 Node.js 다운로드 페이지로 가서 원하는 버전을 다운로드 받는다. 가장 무난하게 설치하는 방법은 설치형(.msi)을 다운받아서 설치하는 것이다. 하드웨어와 운영체제 상황에 따라 적절하게 선택하여 다운로드 받는다. 윈도우 10 64비트를 쓰는 일반적인 PC라면 아래의 PC에서 형광색으로 강조한 것을 다운로드 받으면 설치할 수 있다. Node.js 다운로드 페이지 주소: https://nodejs.org/en/download/ 필자의 경우 개발하는 환경과 운영하는 환경을 Node.js 16.15.0으로 맞췄기 때문에 아래의 주소로 가서 원하는 버전을 다운로드 받았다.. 2022. 8. 8.
브라우저 보안 정책 때문에 웹 포트번호도 신중히 정해야 한다. 웹 서버를 구축하는 중에 남은 포트가 별로 없어서 임의로 포트번호를 넣었는데 포트번호 때문에 아래의 사진처럼 파이어폭스 브라우저에서 차단한다. 인터넷 기반 개발에 복귀한지 얼마되지 않아서 굉장히 당황했다. 앞으로는 웹은 포트번호를 신중히 선정해야 유지보수 요소가 적어지지 않을까 싶다. 2022. 8. 8.
[CentOS 7] Express 4.16.1 설치 Node.js의 Express는 웹 개발용 프레임워크이다. 본 글에서는 Express를 설치하고 기본 예제를 실행해보는 것을 진행한다. Node.js가 없다면 아래의 글에서 설치하는 법을 확인할 수 있다. 2022.08.01 - [소프트웨어 개발/Node.js] - [CentOS 7] Node.js 16.15 설치하고 웹 서버 프로그램을 작성하여 실행해보자 [CentOS 7] Node.js 16.15 설치하고 웹 서버 프로그램을 작성하여 실행해보자 Node.js 16 버전을 설치하고 웹 서버 프로그램을 작성 및 실행하는 방법은 아래와 같다. 설치를 진행한 운영체제는 CentOS 7.8이다. YUM 저장소 목록 확인 아래의 명령어를 입력하여 Node.js 패키지 설치 engineeringcode.tisto.. 2022. 8. 3.
[CentOS 7] Node.js 16.15 설치하고 웹 서버 프로그램을 작성하여 실행해보자 Node.js 16 버전을 설치하고 웹 서버 프로그램을 작성 및 실행하는 방법은 아래와 같다. 설치를 진행한 운영체제는 CentOS 7.8이다. YUM 저장소 목록 확인 아래의 명령어를 입력하여 Node.js 패키지 설치가 가능한 저장소가 있는지를 확인한다. yum repolist EPEL 저장소가 없으면 아래의 명령어를 입력하여 저장소를 추가한다. yum install epel-release Node.js 설치 아래의 명령어를 입력하여 Node.js 패키지를 설치한다. yum install nodejs 설치된 Node.js 버전 확인 아래의 명령어를 입력하여 설치한 Node.js 버전이 원하는 버전인지 확인한다. node -v; rpm -qa | grep node NPM 설치 아래의 명령어를 입력하여 .. 2022. 8. 1.
라라벨 8 시간/타임존 변경 PHP 설정과 DB 설정에 가서 타임존을 변경하였는데도 시간이 의도와 달리 나온다면 라라벨 8의 자체 타임존을 확인해볼 필요가 있다. 라라벨 8 설정 변경 아래의 명령어처럼 라라벨 8 설정 파일을 텍스트 에디터로 연다. vi config/app.php 그러면 아래와 같은 화면이 나타나는데 timezone을 찾아보자. timezone 설정을 찾았다면 UTC로 되어 있는 것을 원하는 시간으로 수정한다. 필자의 경우 우리나라(대한민국) 표준시인 서울로 설정하였다. 'timezone' => 'Asia/Seoul' 설정파일을 저장하면 바로 적용된다. 정상적으로 반영되었는지 테스트 해본다. 2021. 11. 12.
스프링 모바일을 추가하여 모바일 장치를 인식하자 스프링 프레임워크에서 모바일 장치를 인식하는 방법은 여러가지가 있겠지만 그 중 스프링 모바일을 가져와서 코드 몇줄만으로 장치를 인식하는 방법을 소개하려고 한다. 현재 기준으로 스프링 모바일은 2.0.0.M3가 안정적인 배포 버전이다. 메이븐으로 스프링 모바일을 프로젝트에 추가하는 방법은 아래와 같다. spring-milestones Spring Milestones https://repo.spring.io/libs-milestone false 메이븐 저장소를 위의 코드처럼 추가한다. org.springframework.mobile spring-mobile-device 2.0.0.M3 그리고 스프링 모바일 라이브러리를 위의 코드처럼 추가한다. 그 후 스프링 모바일 인터셉터를 위의 코드처럼 서블릿 설정파일에 .. 2021. 2. 12.