본문 바로가기

하루정리

2022.08.07개념공부 resultMap, resultType이란 + 08.03일 복습

resultType

우선 내가 이해한 부분을 정리하면

 

둘 다 select 쿼리문의 리턴 값을 저정해주는 것이다. 

 

resultType는 resultClass를 리턴 값으로 받는다.

Alias(별명)로 지정해준 클래스 명을 많이 따오는데

학원에서 진행한 파이널 프로젝트의 '회원정보 보기' 에서 

 

회원정보가 담긴 테이블의 컬럼명과 같은 DTO,

 의 Alias를 'member'로 했다. 

 

그럼 

<select id="memberSelect"  parameterType = "string" resultType="member">

select * from member

</select>

 

이런식으로 resultClass의 이름으로 리턴 받아 List<memberDTO>로 oupput 해준다. 

 

 

resultMap

resultMap은 resultType과 마찬가지로

select 쿼리문에서 조회된 값을 oupput 해주기 위한 기능인데

 

resultCalss처럼 지정된 calss가 아닌 

xml 같은 문서 안에서 새롭게 정의된 형식(이것도 어찌보면 클래스)으로

select한 내용을 뿌려주는 방식이다. 

 

 

주로 join을 쓴 쿼리문을 output하기위해 많이 사용한다. 

 

사실 이부분은 잘 이해가 가지 않는다.

 

결국 클래스를 만들어서 뿌려주는 거라면 resultType으로 하고 join된 컬럼명과 

같은 객체를 가진 DTO를 만들어준 뒤 Alias를 지정해줘서 

resultType로 쓰면 되는 것 아닌가?

 

이 부분은 좀더 공부한 뒤 다시 포스팅을 해야겠다. 

 

 

21:35

resultType : 지정한 class 를 그대로 사용하겠음
resultMap : 지정한 class 를 해당 xml 에 정의한대로 사용하겠음

내가 이해한 한 줄 요악

 

 

08.03일 내용 복습 및 보충

 

제네릭 : '일반적인'이라는 의미이다.

요약하면 외부에서 타입을 선언함으로서  타입변환의 과정을 줄일 수 있다. 

 

List<String> list = new List<String>():

이렇게 선언을 해두면

들어가는 데이터는 오직 String뿐이며 

컴파일 단계에서 유효성 체크가 가능하다. 

 

'컴파일'이란

어떤 프로그래밍 언어로 쓰여진 소스 파일을

동등한 언어로 바꿔주는 프로세스(작업)을 말함.

인데 

 

list.add("hello"); 이거다.  즉, 데이터 삽입이라고 생각하면 간단. 

 그리고 타입변환을 제거 할 수 있다. 

 

add , get으로 넣고 불러올 때 String타입으로 면환을 할 필요가 없어짐 

https://hoyoung.tistory.com/105

 

2022.08.03 개념 공부 제네릭, 유효성 검사, 브레이크 포인트, svn형상관리

 

hoyoung.tistory.com

자세한 내용은 여기 참조. 

 

 

'유효성 검사' 란

예를 들어 회원가입시에 

올바른 정보를 입력했는지를 판별하여

사용자에게 알려주는 것. 

내가 프로젝트 때 사용했던 건

 

input type='email'로 중간에 @가 없거나 co.kr과 같은 식으로 끝나지 않으면 

올바른 메일을 입력하고 알림창이 떴다. 

 

혹은 if문을 이용해서 

$("#idCheckedBtn").Click(function(){

if( $("#memberId).val() == "") ){

alert("ID를 입력해 주십시오")

$("#memberId").focus();

}else{

$("#memberId).val() =inputId;

$.ajax({

type :"POST",

url : "idChecked",

date : {"id":inputId},

dataType : "json",

success : function(){

alert("사용 불가능한 ID입니다.")} , 

error : function(){

alert("사용 가능한 ID입니다. ")}

})}});

 

이런 식으로 입력한 값이 유효한지 아닌지를 알 수 있다. 

여기서 더 심화적으로 들어가게 되면 글자수, 특수문자여부 등을 if문의 조건으로 설정하여 

네이버처럼

이렇게 텍스트를 띄워 줄 수도 있다. 

 

내가 위에 적은 javaScript는 서버로 id 값을 전송하여 테이블에 그 값에 해당하는 id가 

있는지를 조회하는 방식인데 서비스에서 if문을 쓴다던가 해서 다른 값을 리턴해버리는 등

여러 재미있는 코딩을 할 수 있을 것 같다. 

 

 

디버깅 브레이크포인트

브레이크포인트는 디버깅시의 중단점을 말한다. 

 

이는 빠르게 오류를 찾아내고자 할 때 사용되며 

 

사용자가 브레이크포인트를 지정해 줄 수 있기에

굉장히 무궁무진하게 사용 될 것 같다. 

이 부분의 포스팅이 적인 이유는 

내가 직접 사용해보지 않은 점도 있으며

 

메모리, 하드웨어 등등 여러가지가 있으나

이클립스에서는 사용되지 않기 때문

 

 

 

SubVersion이란

버전관리 시스템의 한 제품 중 하나이다. 

기본적인 개념은 Git와 거의 동일하다. 

 

내가 했던 방식과 다른 점은 이클립스나 인텔리제이에서 git를 사용하는 게 아니라

 

폴더를 SVN과 연결하여 사용한다는 것이다. 

 

SubVersion도 실제 업무에서 사용하며 익숙해져야 될 것 같다. 

 

명령어 및 용어

 

Repository: 프로젝트 파일 및 변경 정보가 저장되는 장소

 

Import: Repository에 맨 처음 파일들을 채우는 것

 

Export: 버전 관리 파일들을 뺀 순수 파일만 빼내는 것

 

Checkout: 저장소에서 최신 버전의 소스코드를 최초로 받아오는 것 / Repository에서 프로젝트 관련 파일들을 받아온다

 

Update: 로컬 저장소에 있는 파일들을 저장소의 최신 버전으로 받아 오기

 

Commit: 로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신

 

Revert: 로컬 저장소의 내용을 이전 상태로 돌림

 

Add: 버전관리 대상으로 파일 등록

 

Trunk: 개발 소스를 commit 했을 때 개발 소스가 모이는 곳 / 프로젝트에서 가장 중심이 되는 디렉토리, 소스와 파일 포함

 

Branch: trunk에서 분리/복사한 소스로 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적

 

으로 사용

 

Tag: 특정 시점의 상태 보존 목적으로 사용 장기적으로 1.0, 1.1 등 버전 별로 소스 코드를 따로 저장

 

 

특정 시점에서 프로젝트의 스냅샷을 찍어두는 것

출처: https://na27.tistory.com/211 [na27:티스토리]