전체 글

웹개발/Spring

[Spring] @RequestParam, @RequestBody, @ModelAttribute 차이

@RequestParam 한개의 파라미터를 받기 위해 사용 필수 여부가 true기 때문에 반드시 파라미터가 전송되어야 하고 , 파라미터가 전송되지 않으면 400에러 발생 반드시 필요한 값이 아니면 required를 false로 설정 defaultValue 옵션을 통해 기본값 지정 가능 예시 @RestController @RequestMapping("/user") public class UserController { //파라미터 필수 @GetMapping("/list") public String userList( @RequestParam String searchKeyWord) { ... return "user/userList"; } //파라미터 필수X @GetMapping("/list") public St..

Database

[Mybatis] 마이바티스 #{} ${} 차이

회사에서는 Mybatis를 이용하여 파라미터를 받을 때 #{}를 사용 하지만 ${}로도 파라미터를 받을 수 있다는 걸 알게되었습니다. 저에겐 #이 익숙하지만 $로도 받을 수 있다고 생각하니 두개의 차이점이 궁금해졌습니다. ${} 사용 과정 ${} 사용 시 Statement 생성 합니다. Statement의 Parameter 값을 그대로 전달합니다. Parameter를 그대로 전달하기 때문에 문자열에 따옴표가 붙지 않습니다. 특징 Parameter가 바로 출력됩니다. 해당 컬럼의 자료형에 맞춰 Parameter의 자료형이 변경됩니다. Parameter 값이 넣어진 채로 Query문이 수행됩니다.(parameter 값이 바뀌면 다른 query로 인식) 그러므로 Parameter의 값이 바뀔 때마다 항상 Qu..

웹개발/Spring

[MyBatis] <!CDATA[ ... ] 사용 이유

CDATA 란 Character DATA, 즉 문자형 데이터를 말합니다. MyBatis 사용시 SELECT 문에는 조건을 걸어 쿼리하기 위해 , = 등의 기호를 많이 사용하는데, 이것이 파싱 중에 태그로 인식되거나 하는 등의 문제가 생겨 error를 발생시킬 수 있습니다. 예시) 에러 예시 SELECT * FORM EMPLOYEES WHERE SALARY > 100 하지만 아래와 같이 안에 원하는 쿼리문을 선언 한다면, 파싱하지 않고 그대로 문자열로 인식 시킬 수 있어 이런 문제를 예방할 수 있습니다. 예시) 올바른 예시 100 ]]> Reference : https://choicode.tistory.com/33 https://gdtbgl93.tistory.com/53

웹개발/Spring

[Spring] HTTP 응답코드, 에러코드, 상태코드 종류

기능 구현시 모두 응답코드 200을 받는 다면 정말 행복하겠지만 사실상 개발을 하다보면 여러 응답코드를 마주하게 됩니다. 그래서 이번 글에서는 개발 시 마주하는 HTTP 응답코드를 정리해보려 합니다. 😂 응답코드 응답코드란 서버가 클라이언트 요청을 처리하고 난 후 상태에 따라 반환하는 코드입니다. 코드는 크게 다섯 가지 종류가 있습니다. 범위 영역 의미 1XX 조건부 응답 클라이언트가 데이터를 일부만 포함해 보내어 서버가 데이터를 더 보내라고 하는 응답 코드 2XX 성공 서버가 클라이언트로부터의 요청을 성공적으로 처리한 후 반환하는 응답코드 3XX 리다이렉션 완료 클라이언트가 요청을 완료하기 위해 작업이 남아있는 코드입니다. 보통 새로고침을 한 경우 반환하는 응답코드 4XX 클라이언트 오류 클라이언트의 ..

웹개발/Spring

[Spring] jsp ES6 ${}(백틱을 이용한 Template literals) 출력 안될때

문제 jsp에서 아래와 같이 백틱(`)을 이용하여 Template literals(내장된 표현식을 허용하는 문자열 리터럴) 데이터를 출력하려는데 출력이 되지 않는 현상 해결 해결법은 의외로 간단합니다. 너무 별거 없지만... 바로 ${} 앞에 \를 붙여주는 것입니다 . let sample = "genie"; console.log(`blog name is \${smaple}`); Reference : https://okky.kr/questions/508135

웹개발/Spring

[Spring] maven 생명 주기 및 이클립스 프로젝트 빌드 하기 (war 파일)

메이븐(Maven) 빌드 생명주기 메이븐 실행단위를 골(Goal)이라고 하고, 골들이 상호 연관해서 실행되는데 그러한 관계를 메이븐 골의 새명 주기라고 합니다. LifeCycle Clean > Validate > Compile > Test > Package > Install > Deploy Clean build 후 만들어지는 Target의 디렉토리를 삭제합니다. Validate 올바른 pom.xml 인지 확인합니다. (프로젝트가 올바른지 확인하고 필요한 모든 정보를 사용할 수 있는지 확인하는 단계) Compile 의존성들을 가져오고, Target/classes 디렉토리에 빌드합니다. (프로젝트의 소스코드를 컴파일 하는 단계) Test 유닛(단위) 테스트를 수행 하는 단계(테스트 실패시 빌드 실패로 처리)..

Language/JavaScript & jQuery

[JavaScript] 체크박스 전체 선택 / 해제 및 선택 값 리스트 받기

HTML 전체선택 고양이 토끼 삭제 JAVASCRIPT /*체크 박스 전체 선택*/ function fnCheckAll() { //체크박스 리스트 const checkField = document.listForm.checkField; //전체선택 체크박스 true false const checkAll = document.listForm.checkAll.checked; if (checkField) { // checkField가 NodeList인 경우 (여러 개의 체크박스가 있는 경우) if (checkField instanceof NodeList) { // NodeList인 경우 배열로 변환하여 forEach 메서드 사용 // NodeList는 배열과 유사하지만 배열 메서드를 사용 할 수 없기 때문에 Ar..

Database/MySQL

[HeidiSQL] 하이디SQL DB 데이터 엑셀로 저장하는 방법

테이블이 많아지면서 DB관련 산출물을 작성하는데 시간이 오래 걸리는 경우가 있습니다. 이때 복붙을 통해 유용하게 사용 했던 방법을 소개해드리려 합니다. 1. HeidiSQL SQL문 실행 HeidiSQL을 열어 아래의 쿼리문을 실행합니다. SELECT t1.table_name, t1.table_comment, column_name, data_type, column_type, column_key, is_nullable, column_default, extra, column_comment FROM (SELECT table_name, table_comment FROM information_schema.TABLES WHERE table_schema='조회할디비이름') t1, (SELECT table_name, ..

형상관리/Source Tree

[Source Tree] 소스트리 안열림 해결방법

종종 소스트리를 실행해도 안열릴 때가 있습니다. 소스트리 안열림 해결방법 1. 경로 아래 경로로 들어 갑니다. C:\사용자\유저이름\AppData\Local\Atlassian\SourceTree.exe_Url_2uxrkcxkwbn0fwe5s1hjkpesttrlulg5\3.4.12.0 2. 파일 삭제 Composition.cache 파일을 삭제 한 후 , 소스트리를 실행해 보면 실행되는것을 볼 수 있습니다. Reference : https://iamdaeyun.tistory.com/entry/소스트리-실행-안됨-해결방법

웹개발/Spring

[Spring] @SuppressWarnings 어노테이션 의미

@SuppressWarnings 이란? @SuppressWarnings 어노테이션은 컴파일 경고를 사용하지 않도록 설정해주는 것으로, 예를 들면 로직상 문제가 없는 코드인데 이클립스에서 노란색 표시줄이 나타내는 것 즉, 경고를 제외시킬 때 사용합니다. 또한, 두 가지의 종류를 같이 사용할 때는 @SuppressWarnings({"unused", "unchecked"})처럼 객체 형식으로 묶어서 사용합니다. @SuppressWarnings 종류 1. @SuppressWarnings("unused") 사용하지 않는 코드 및 불필요한 코드가 있을 경우 경고를 억제시켜줍니다. @SuppressWarnings("unused") private final Logger logger = LoggerFactory.getL..

웹개발/egov

[egov] 클라이언트(Client) IP 가져오기

Client IP를 가져오고자 할때 보통은 Spring의 controller에서 request.getRemoteAddr();를 이용해 IP를 가져오는데, WAS 서버 앞에 프록시 서버, 로드밸런싱 서버 등과 같은 다른서버가 존재할때 request.getRemoteAddr();를 이용하면 Client IP가 아닌 WAS 앞의 서버의 중간 서버 IP를 가져옵니다. 이러한 경우 Client IP는 Header에 남겨두기 때문에 Header를 이용해서 IP를 가져와야 합니다. Client IP 가져오는 Util 클래스 예시 package egovframework.client.web.utils; import java.net.UnknownHostException; import java.util.ArrayList; ..

웹개발/Spring Boot

[Spring Boot] Model ModelAndView 차이점

Model 예제 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.ui.Model; @Controller RequestMapping("/model") public String sampleModel(Model model) { model.addAttribute("nickName", "08genie"); return "temp/model"; } 파라미터 방식 String 형태로 return 값을 넣을 때 addAttribute()를 사용 ModelAndView 예제 import org.springframework..

08genie
GENIE