본문 바로가기

경험

서버 이관 - 서버 이관 처음할 때 필요했던 것들 입사한 지 얼마 되지 않은 시절, 회사에는 Window Server 2008 / MsSQL / 파스칼로 이루어진 노후된 프로젝트가 있었다. 또한, 서버는 원격 접속이 되지 않고 직접 가서 배포 및 관리해야 했다. 또 또한, 회사에서 만든 프로젝트도 아니고 회사 내에서 파스칼을 할 수 있는 사람이 없었다(??? 이제 생각해 보니 어이가 없군..). 그런데 내가 그 프로젝트의 서버 이관을 맡게 되었다..! 갑자기 생각나기도 했고 또 언제 서버 이관을 할지도 모르니 아주 늦었지만, 기억을 더듬어보며 정리해놓으려고 한다. 용어 설명 migration : 이관을 뜻한다. AS-IS : 현재 환경 (이관 전 환경) TO-BE : 구현해야할 환경 (이관 후 환경) 1. AS-IS 파악 일단 이 프로젝트는 내가 개발 .. 더보기
Express 라우팅 - 라우트 파라미터 정규식 1. 라우트 경로 https://expressjs.com/ko/guide/routing.html express에서 요청을 등록할 때는 세가지 요소가 필요하다. 메서드 종류 (GET, POST, PUT, DELETE 등) URL 경로 해당 요청을 처리할 미들웨어 함수 오늘은 그 중에서도 2번인 URL 경로에 대해 알아보도록 하겠다. URL 경로는 어디에 들어가는가? 바로 요청 등록 함수의 첫 번째 매개변수로 들어간다. 값은 문자열과 정규식을 지원한다. 그 중 문자열 형태를 살펴보자. '/test'로 등록하면 /test로 요청할 때 인식하고 '/te?st'로 등록하면 /test 혹은 /tst일 때 인식하고 => 0글자 혹은 1글자 '/te+st'로 등록하면 /test, /teest, /teeest ...일 .. 더보기
[Spring][MySql] Unknown system variable 'query_cache_size’ mysql-connector-java 종속성의 버전 차이 때문에 발생하는 오류이다. 예를 들면, DB의 mysql 버전은 8.x.x버전인 반면에 mysql-connector-java의 버전이 5.x.x라면 위와 같은 오류가 발생할 수 있다. 1. pom.xml에서 mysql-connector-java의 버전을 올려주고 2. maven clean 3. maven install을 하여 종속성을 업데이트하여 해결했다. 더보기
[MySql] [Oracle] 정렬 시 Null 위치 컨트롤하기 우선 순위 기능 넣어주세요~ 낮을수록 위에 오고, 없는 데이터는 그 아래에 뿌려주세요~ 위 요구 사항을 해결하기 위해서 priority 컬럼을 만들어주었다. -- Null을 허용함 ALTER TABLE board ADD priority INT​ 그 후, 그냥 ASC 정렬을 하면 우선순위가 낮은대로 출력될 줄 알았다. SELECT * FROM board ORDER BY priority ASC 하지만 출력결과는 아래와 같았다.. DATA PRIORITY {~~~~~} {~~~~~} {~~~~~} 1 {~~~~~} 3 ASC 정렬 시 null이 우선되기 때문이었다. 문제 해결 TRUE는 1이고 FALSE는 0이다. 누가 더 큰가? TRUE가 더 크다. 우선순위가 있는 녀석들과 없는 녀석들의 차이는 우선순위의 .. 더보기
[ERROR] unable to find valid certification path to requested target https://~~~.co.kr/~~ API 호출해서 체크하고 응답값에 따라 구분해주세요~ 외부 API 호출해서 처리할 이슈가 생겼다. 원래는 브라우저에서 처리하려고 했으나, 외부업체에서 "CORS 정책을 풀어줄 수 없다"하여 백엔드에서 호출하고 프론트에 던져주는 흐름으로 자바로 URLConnection을 만들어서 요청하는 도중, 생전 처음 보는 오류를 보았다. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 인증서 .. 더보기
[DataGrip] 콘솔에 있는 쿼리문 .sql 파일로 저장하기 [우클릭] > 리팩터링 > 파일 복사... 그 후, 원하는 경로에 원하는 이름.sql 파일을 저장한다. 더보기
Spring 프로젝트, 전자정부프레임워크로 마이그레이션 - 아키텍처 규칙 지난 글에서는 마이그레이션을 시작하기에 앞서 전자정부프레임워크 종속성을 포함하는 방법에 대해 알아보았다. 이번에는 전자정부프레임워크로 인정받기 위한 소스변경(?)의 첫 시작을 해보려 한다. 아키텍처 규칙 (Architecture Rule) Controller @Controller와 @RequestMapping을 통해 경로를 작성한다. @GetMappring도 될까..? 추후에 확인해보도록 하겠다 (심사할 때까지 대기 허허..) View 부분과 Model(business logic 및 data) 부분을 Controller를 통해 분리한다. ➡️ 진행하고 있던 프로젝트는 다행히 적용되어 있었다. Service 클래스 상단에 @Service 선언한다. EgovAbstractServiceImpl을 상속한다. 그.. 더보기
Spring 프로젝트, 전자정부프레임워크로 마이그레이션 - 소개 & Maven 이 글에서는 기존 스프링 프로젝트를 전자정부프레임워크로 마이그레이션하는 방법을 알아보려고 한다. 체리맥주님~ 저희 사용하고 스프링 프로젝트, 전자정부프레임워크 적용해주세요~~ 당황했다. 전자정부프레임워크 소리만 들어봤지 무엇인지는 자세히 몰랐다. "스프링이랑 똑같은 거 아닌가(ㅋㅋ?)"라고 생각했다. 일단, 요청을 알아야 처리를 하기에 요청에서 받은 단서들을 조사하기 시작했다. 전자정부프레임워크(eGov)란 무엇인가? 전자정부 표준프레임워크 사이트를 훑어본 후, 나는 전자정부프레임워크(이하 eGov라 표기)를 개발환경(IDE), 실행환경(소스, 라이브러리), 운영환경(VCS, 서버)등을 제공/정의해놓은 집합체라고 정의했다. eGov를 사용하면 공통 컴포넌트를 통해 빠른 개발이 가능해 보인다. 또한, 다른.. 더보기