본문 바로가기
728x90
반응형

전체 글135

[back] Mybatis <association> 사용하기 - 게시글 + 게시글첨부파일 동시조회 (feat.부적합한 열) association 사용법 가져오려는 객체와 연결된 다른 정보들을 객체화해서 가져오기 위해 1:1 관계일 경우 association 기능을 이용한다. 예를 들어, 게시글 정보와, 게시글의 파일 정보를 개별 테이블로 구분하여 사용하고 있고 게시글을 가져올 때 게시글의 첨부파일 정보를 가져오려 한다면 게시글과 첨부파일 조회 쿼리매핑에 을 사용할 수 있다. 매핑쿼리 목적 : 게시글 조회 getArticleDetail 호출 시, getFileObject도 함께 호출되어 첨부파일까지 한번에 조회 1. association 추가하기 전 쿼리 : 단순 게시글 조회 SELECT ATC_SEQ , TITLE , REG_ID , REG_DTM , CTS , VIEW_CNT FROM TB_ATC_FILE WHERE ATC.. 2023. 11. 9.
type script 시작하기 (VSCode와 Node.js) type script 환경 세팅 https://opentutorials.org/course/5080/32299 TypeScript 실습환경 - 내 컴퓨터에서 실행하기 - 생활코딩 Nodejs 설치 Typescript를 사용하기 전에, 먼저 Node.js를 설치해야 합니다. LTS(Long Term Support) 버전을 설치하세요. https://nodejs.org/ TypeScript 설치 Node.js를 설치한 후, 다음 명령어로 Typescript를 설치합니다. opentutorials.org 생활코딩 참조! 세팅 진행 순서 VS Code 설치 node.js 설치 npm 명령어 > typescript 설치 typescript 파일 생성해보기 1. VS Code 설치 먼저 코드를 실행할 환경으로, V.. 2023. 11. 4.
[back] 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나 어쩌구 저쩌구 어제까지 순조롭게 작업을 어느정도 마무리하고 마지막에 input만 조금 수정한 후에 저장 오늘 작업을 마저 전개하려는데 테스트 차원에서 insert 하는 ajax 통신을 작동시켜봤는데 오류발생 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나, 처리하지 않을 것입니다. (예: 잘못된 요청 문법, 유효하지 않은 요청 메시지 framing, 또는 신뢰할 수 없는 요청 라우팅). 클라이언트 오류로서 인지된 어떤 문제로 인하여, 서버가 해당 요청을 처리할 수 없거나, 처리하지 않을 것입니다. (예: 잘못된 요청 문법, 유효하지 않은 요청 메시지 framing, 또는 신뢰할 수 없는 요청 라우팅). ... 이렇게만 나와서 뭐가 문제인지 바로 찾을 수가 없었다 진짜ㅡㅡ 역시나 오.. 2023. 10. 19.
[back] Mybatis 쿼리 작동 오류 Query Result[]: -1row 개발을 할 수록 익숙해지면서 썼던 소스 복붙을 점점 많이 하게 된다.. 나태해지고 있다 그러다보면 어처구니 없는 실수를 하곤 하는데 스스로 경각심을 가지고자 포스팅까지 하게 되었다 😥 게시글이 등록된 적이 있으면 update, 없으면 insert 되도록 하려 했는데 계속 호출한 Mybatis Merge 문이 2번 실행이 되고 Query Result[]: -1row 오류가 발생 10분 정도 삽질하고 처음부터 controller단 부터 다시 꼼꼼히 봤더니 에혀 DaoImpl.java에 selectOne을 적음 @Override public Integer editPolicyData(PolicyVO policyVO) { return sqlSession.selectOne(SQL_FILE_PATH + "editPo.. 2023. 10. 17.
오라클 LPAD, RPAD 함수 : 공백 채우기 메뉴코드나, 자격증 코드를 구성할 때 코드명 || 시퀀스 형태로 붙여서 사용하는 방법도 있겠지만, 뒤로 길어지는 게 아닌, 자릿수는 지키면서 숫자만 올라가는 것을 원할 경우 LPAD. 또는 RPAD 함수를 사용할 수 있다. 개인적으로는 LPAD가 메뉴코드 / 자격증 코드를 구성하기에 적합한 것 같다. 사용법 SELECT LPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; SELECT RPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; LPAD , RPAD 는 시작점 위치가 왼쪽이냐 오른쪽이냐의 차이이다. 설명 SELECT LPAD([데이터], [총 자릿수], [채울 데이터]) FROM TABLE; 첫번째 데이터를 기준으로, 총 자릿 수 중 왼쪽으로 남은 .. 2023. 9. 15.
오라클 INSTR 함수 : 텍스트 인덱스 가져오기, (indexOf) 데이터를 가져올 때 쪼개서 가져오고 싶을 때가 있다. 그럴 때 사용할 수 있는 함수가 INSTR() 이다. 사용법 SELECT INSTR([데이터], [찾을 데이터], [찾기 시작할 위치], [찾을 데이터의 순번]) FROM TABLE; 1) 파라미터 2개 사용 시 SELECT INSTR('ORACLE TEST CODE', 'E') FROM DUAL; 텍스트 'ORACLE TEST CODE' 중, 'E'가 처음으로 위치한 순서를 가져온다. (result : 6) 앞에서부터 순서를 세고 인덱스 위치를 가져온다기보다는 순서를 가져오기 때문에, 리턴 숫자는 0, 1, 2..로 진행되는 게 아니라 1, 2, 3..으로 진행된다 2) 파라미터 3개 사용 시 SELECT INSTR('ORACLE TEST CODE'.. 2023. 9. 15.
[back] 엑셀 파일 생성 및 다운로드 소스 구조 엑셀 파일 생성 및 다운로드 소스 구조 를 이해하기 위해 레거시 코드를 분석해보았다 1. 엑셀 파일 생성(엑셀 라이브러리 POI 사용) 2. response 객체에 엑셀파일 출력 전체코드는 제일 아래에! 1. 엑셀 파일 생성(엑셀 라이브러리 POI 사용) 우선 먼저, 엑셀 파일을 생성해준다. 엑셀 파일 생성에 필요한 기본 메소드는 아래와 같다. - HSSFWorkbook workbook = new HSSFWorkbook(); : workbook 생성자로 엑셀 파일 객체 생성 - HSSFSheet sheet = workbook.createSheet(); : workbook 객체의 createSheet 메소드를 사용하여 시트 생성 - HSSFRow row = sheet.createRow(0); : sheet.. 2023. 9. 1.
[back] 세션 끊길 때 http<->https 이동간 세션 복사 http -> https 이동 시에도 끊기는 증상이 있었는데, 이런 경우는 같은 https 끼리는 세션이 유지되니까 프로토콜을 변경해주는 조치를 간단하게 해줬었다. 예를 들어 url.replace("http://","https://"); 이런식으로.. 반대로 https -> http 로 넘어갈 때는 세션이 끊기지 않는다고 알고있었는데, 매번은 아니지만 간혈적으로 끊기는 증상을 발견했다. 그래서 최대한 세션이 끊기지 않도록 Https Filter를 만들어서 세션을 복사하는 필터를 걸어주도록 했다. 아래 소스는 구글에 세션공유 라고만 검색해보면 충분히 얻을 수 있는 소스들이다. 1. web.xml에 필터 등록 web.xml https 내가 만들 Https Filter 패키지 경로.필터클래스명 https /*.. 2023. 8. 22.
오라클의 간단한 if 문 : DECODE 함수 오라클에서도 if 문처럼, true 와 false 로 다른 값을 보여주도록 할 수 있다. decode 문이 그렇다. SELECT DECODE(A, B, C, D, F, G) FROM TABLE; 위의 함수를 자바 소스처럼 풀어서 써보자면 의미가 아래와 같다. if (A == B) { return C; } else if (A == D) { return F; } else { return G; } 위의 소스처럼 순서대로 비교해서 결과값이 나오게 된다. 🐦 주의사항 🐦 1) DECODE 함수의 파라미터는 여러개를 사용할 수 있지만 최소 3개는 들어가야 한다. 파라미터를 2개 이하로 쓰면 아래와 같은 오류 발생함 ORA-00938: 함수의 인수가 충분하지 않습니다 00938. 00000 - "not enough .. 2023. 8. 4.
오라클 WITH AS 문 = 임시로 1회용 테이블 만들기 WITH AS 문은 뭔가 처음봤을 때는 오오 이게뭐야 🤩 ?! 했는데 막상 해보면 별 거 아닌 WITH AS 구문.. WITH AS 문은 임시 테이블 생성 구문 이라고 할 수 있다. 내가 가져오고 싶은 데이터들을 테이블처럼 가져올 수 있게 해준다. 나는 주로 JOIN 으로 묶기에 애매한 테이블이나, 아예 서로 관계가 없는 테이블의 데이터를 끌어와서 동시에 표현하고 싶을 때 사용한다. 이런 경우가 아니라면 JOIN 함 쿼리문 WITH TBL_TEAM AS ( SELECT '개발팀' AS 부서 , '사원' AS 직급 FROM DUAL ), TBL_TEAM_INFO AS ( SELECT '사원' AS 직급 , '2800' AS 연봉 FROM DUAL ) SELECT TT.부서 , TT.직급 , TTI.연봉 F.. 2023. 8. 4.
728x90
반응형