[MyBatis] All Element Are Null 오류
·
DB
게시판 모듈을 생성하면서 Tree 구조로 댓글 데이터를 가져오는데 List가 카운트는 되지만 nullException이 발생하면서 데이터를 가져오지 못하고 있었다. 원인은 참고하는 인스턴스가 없었기 때문인데 분명히 VO객체를 잘 생성해놨기 때문에 이 객체를 인식하는 설정을 놓치고 있다는 생각이 들어 파일을 보다가 해결한 과정을 정리해본다. 해결 방법 1. resultType에 VO 또는 DTO객체 이름이 제대로 쓰여져 있는지 확인하기. 2. 1번이 제대로 쓰여져 있다면 JAVA config파일 안 sessionFactoryBean.setTypeAliasesPackage에 객체의 경로를 작성했는지, 작성했다면 오타나 잘못된 부분이 없는지 확인하기. JAVA config @Configuration @Mapp..
[JAVA] We love kriii
·
Computer Science/Algorithm
https://st-lab.tistory.com/6?category=827050 [백준] 10718번 : We love kriii - JAVA [자바] https://www.acmicpc.net/problem/10718 10718번: We love kriii ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올 해에도 파주.. st-lab.tistory.com InputStreamWriter / OutputStreamWriter 바이트 스트림에서 문자 스트림으로, 또는 문자 스트림에서 바이트 스트림으로의 변환을 제공하는 입출력 스트림. 바이트를 읽어서 지정된 문자 인코딩에 따라 문자로 변환하는 데 사용한..
[JAVA] Hello World
·
Computer Science/Algorithm
https://st-lab.tistory.com/2 [백준] 2557번 : Hello World - JAVA [자바] https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 문제 첫 글로 백준 알고리즘 사이트의 문제를 포스팅했다. 앞으로도 쭉 이 사이트의 단계별 문제들을 풀.. st-lab.tistory.com 마침 단계 별로 풀고 있었는데 좋은 분의 블로그를 발견했다. 간단히 출력만 하고 넘어갈 수 있는 문제라고 생각했는데 출력 속도 비교 링크까지 걸어두신 걸 보고 보면서 정리하고 따라하면 더 공부가 될 것 같아서 기록으로 남겨두려고 한다. 불변 클래스(immutable class)와 가변 클..
LinkedIn SNS 연동
·
Web
🚀 Overview 링크드인 API는 OAuth2를 사용하여 유저 인가와 API 인증을 처리한다. 애플리케이션은 링크드인 회원 정보에 접근하거나 링크드인으로부터 데이터를 가져오기 전에 인증과 인가가 이루어져야 한다. 승인 타입 승인 타입은 링크드인 리소스에 접근할 때 필요한 인가에 대해 승낙 여부를 알려주는 코드이다. 링크드인은 회원 정보가 오용되지 않도록 정보를 보호하기 위해 승인 타입을 사용한다. 그래서 데이터를 사용하기 전에 승인 타입을 생성해야 한다. 로그인 연동 과정 전제 조건 ○ 애플리케이션 생성 링크드인 개발자 포털에서 애플리케이션을 생성한다. ○ 승인 타입 추가 Products 탭에서 "Sign in with LinkedIn"을 추가하고 Auth 탭에 있는 Oauth 2.0 scopes에 ..
JavaScript 간단한 함수로 다국어 처리하기
·
JavaScript
Validation을 하면서 에러메시지를 다국어 처리했어야 했는데 굳이 라이브러리를 쓰지 않아도 될 것 같아서 간단히 함수와 메시지 파일을 만들어 처리했다. locale 정보 가져오기 기존 서버 코드가 쿠키에 locale 정보를 저장하게 되어 있어서 getLocale 함수를 생성해서 값을 가져온다. validation.js function getLocale() { var lang = 'ko'; var cookies = document.cookie; var splitCookies = []; if (cookies) { splitCookies = cookies.split('='); lang = splitCookies[1] } return lang; } default 값은 'ko'로 설정한다. document...
jQuery validation plugin(Form validation 사용법)
·
JavaScript
Form Validation Plugin jQuery Validation 플러그인을 이용하면 클라이언트 사이드에서 다양한 커스텀 옵션들을 통해 form validation을 쉽게 처리할 수 있다 . 이미 생성되어 있는 메소드를 활용해도 되고 개발자가 필요한 기능이 있으면 직접 메소드를 만들 수 있어 활용도가 높은 편이다. 에러 메시지들은 디폴트 값인 영어로 표출되지만 37개의 언어를 지원한다고 하는데 나는 다국어 처리를 위해서 에러 메시지를 그대로 활용하지는 않았다. Form Validation Plugin 활용하기 이번에 회원가입 기능을 구현하기 위해 플러그인을 사용했던 방법들을 정리해 봤다. 🚩 자바스크립트 파일 다운로드 https://github.com/jquery-validation/jquery-..
자바스크립트 정규표현식(Regular expressions)
·
JavaScript
💡 정규표현식(정규식)이란? 문자열에 나타나는 특정 문자 조합과 대응시키기 위해 사용되는 패턴. RegExp의 exec메소드, test메소드, 그리고 String의 match메소드, replace메소드, search메소드, split메소드와 함께 쓰인다. 💡 정규식을 만드는 방법 정규식 리터럴(슬래쉬로 감싸는 패턴) 사용하기 var re = /ab+c/; RegExp 객체의 생성자 함수 호출하기 var re = new RegExp("ab+c"); 💡 메타문자 문자 의미 예제 \ 특수문자 예외처리(escape) naver\.com& - 온점을 일반 문자로 취급 ^ 문자열 시작 ^[a-z] - 소문자로 시작하는 문자열 $ 문자열 끝 com& - com으로 끝나는 문자열 . 임의의 문자 하나 sh.on - s..
[Spring] Spring Batch - 잡과 스텝 이해하기
·
Spring
'스프링 배치 완벽 가이드'의 내용을 바탕으로 작성된 개인 공부를 위한 기록용 포스트입니다. 잡의 생명주기 잡의 실행은 Job runner에서 시작된다. 잡 러너는 잡 이름과 여러 파라미터를 받아들여 잡을 실행시키는 역할을 한다. JobExecution은 잡 실행의 실제 시도를 의미한다. 잡이 처음부터 끝까지 단번에 실행 완료됐다면 해당 JobInstance와 JobExecution은 단 하나씩만 존재한다. 첫 번째 잡 실행 후 오류 상태로 종료됐다면, 해당 JobInstance를 실행하려고 시도할 때마다 새로운 JobExecution이 생성된다. 스텝 알아보기 스텝은 독립적이고 순차적으로 배치 처리를 수행한다. 모든 단위 작업의 조각으로 자체적으로 입력을 처리하고 자체적인 처리기를 가질 수 있으며 자체..
[Spring] Spring Batch - 스프링 배치
·
Spring
'스프링 배치 완벽 가이드'의 내용을 바탕으로 작성된 개인 공부를 위한 기록용 포스트입니다. 각 스텝은 잡을 구성하는 독립된 작업의 단위 Tasklet 기반 스텝 구조가 더 간단, tasklet을 구현하면 스텝이 중지될 때까지 execute 메서드가 계속 반복해서(execute 메서드를 호출할 때마다 독립적인 트랜잭션이 얻어짐) 수행된다. 태스크릿 기반 스텝은 초기화, 저장 프로시저 실행, 알림 전송 등과 같은 잡에서 일반적으로 사용 Chunk 기반 스텝 구조가 약간 더 복잡하며, 아이템 기반의 처리에 사용 ItemReader, ItemProcessor(생략 가능), ItemWriter라는 3개의 주요 부분으로 구성될 수 있음 스프링의 잡 구조화 방법이 가진 장점 중 하나는 각 스텝이 서로 독립적으로 처..