본문 바로가기
국비학원/수업기록

국비 지원 개발자 과정_Day104

by 루팽 2023. 4. 27.

 

<시험1-애플리케이션 배포평가자체크리스트>

프로젝트에 사용할 라이브러리를 pom.xml을 이용하여 추가(mavenrepository 이용)

<!-- https://mvnrepository.com/artifact/com.oracle/ojdbc8 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>21.1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>

 

로그인 요청 URL을 매핑하여 서비스 호출 및 뷰 연결처리를 하는 메소드 memberLogin()

@RequestMapping("/login")
public String memberLogin(Member member, Model model, HttpServletRequest request) {
Member loginMember = memberService.loginMember(member);
if(loginMember == null) {
model.addAttribute("msg", "로그인 실패");
}else {
model.addAttribute("loginMember", loginMember);
}
return "redirect:/";
}

 

Session 생성(loingMember, msg)

HttpSession session = request.getSession();
session.setAttribute("loginMember", loginMember);

 

MemberService 인터페이스

package com.ncs.test.member.model.service;
import com.ncs.test.member.model.vo.Member;
public interface MemberService {
public abstract Member loginMember(Member member);
}

 

MemberServiceImpl 클래스

package com.ncs.test.member.model.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ncs.test.member.model.dao.MemberDAO;
import com.ncs.test.member.model.vo.Member;
@Service
public class MemberServiceImpl implements MemberService {
@Autowired
private MemberDAO memberDAO;
@Override
public Member loginMember(Member member) {
return memberDAO.loginMember(member);
}
}

 

MemberDAO 클래스

package com.ncs.test.member.model.dao;
import org.mybatis.spring.SqlSessionTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.ncs.test.member.model.vo.Member;
@Repository
public class MemberDAO {
@Autowired
private SqlSessionTemplate sqlSession;
public Member loginMember(Member member) {
return sqlSession.selectOne("memberMapper.loginMember", member);
}
}

 

typeAliases 등록

<typeAliases>
<typeAlias type="com.ncs.test.member.model.vo.Member" alias="Member"/>
</typeAliases>

 

mapper 등록

<mappers>
<mapper resource="/mappers/member-mapper.xml"/>
</mappers>

 

VO 클래스와 Member 테이블 조회 결과를 매핑할 resultMap

<resultMap type="Member" id="memberResultSet">
<id property="memberId" column="MEMBER_ID"/>
<result property="memberPwd" column="MEMBER_PWD"/>
<result property="memberName" column="MEMBER_NM"/>
<result property="memberEnrollDate" column="MEMBER_ENROLL_DT"/>
</resultMap>

 

로그인 기능을 수행하기 위한 select 엘리먼트

<select id="loginMember" parameterType="Member" resultMap="memberResultSet">
SELECT member_nm
FROM MEMBER
WHERE MEMBER_ID= #{memberId}
AND MEMBER_PWD= #{memberPwd}
</select>

 

 

<시험2-애플리케이션 배포문제해결시나리오>

1. 문제의 원인(20점)과 해결을 위한 조치사항(20점)을 <properties> 태그와 연관 지어 서술

현재 각 모듈들의 버전이 5.2.11.RELEASE와 일치하지 않아 지원하는 범위와 사용할 수 있는 jdk 등이 다르기에 문제가 발생한다

3버전은 jdk5까지 지원하고 Groupid 등은 지원하지 않는다.

4버전은 jdk8까지 지원하고 @Order, @RestController등 어노테이션을 사용할 수 있다

5버전은 jdk8이상 지원하고 웹지원, xml과 json 등의 지원이 확대되었다.

 

모든 모듈의 버전을 5.2.11.RELEASE로 수정하거나 아래와같이 <properties>태그를 이용해 모듈의 버전을 통합 관리한다.

<version>${org.springframework-version}</version>

 

2. 원인(5점)과 이를 해결하기 위한 조치사항(5점)을 각각 서술

jstl.jar파일 배포가 안 되어있다

 

maven repository에서 해당 파일을 다운로드한 후 프로젝트의 lib폴더에 추가하고 Java Build Path에서 Jar파일을 추가해 준다.

 

3. 문제의 원인(10점)과 이를 해결할 수 있는 조치사항(15점)을 기술

pom.xml의 dependency설정이 잘못되었거나 해당 라이브러리를 찾지 못했기에 에러가 발생했다.

 

메이븐 Update Maven Project에 들어가 Force Update of Snapshots/Releases를 체크하고 ok버튼을 누른다.

 

4. 에러가 발생한 원인(10점)과 이를 해결하기 위한 조치사항(15점)을 각각 서술

MobileService객체를 MobileController에서 사용하기위해 필요한 객체 등록이 안되어있다.

 

MobileService에 @Service 어노테이션을 작성하여 스프링 빈으로 등록하거나 bean-context.xml에 해당 클래스를 등록한다.

댓글