본문 바로가기

전체 글

[Spring] Spring의 의존성 주입이란 / 어노테이션이란 비즈니스 계층 비즈니스 계층은 고객의 요구사항을 반영하는 계층으로 프레젠테이션 계층과 영속 계층의 중간 다리 역할을 하게 됩니다. 일반적으로 비즈니스 영역에 있는 객체들은 '서비스(Service)'라는 용어를 많이 사용합니다. 일단, 비즈니스 계층을 위해서 프로젝트 내 com.exe.service라는 패키지를 작성합니다. 설계를 할 때 각 계층 간의 연결은 인터페이스를 이용해서 느슨한 연결을 합니다. Service 인터페이스와 그 인터페이스를 구현한 ServiceImpl 을 만들어줍니다. SongVO.java (데이터객체) package com.exe.domain; import lombok.Data; @Data public class SongVO { private String song_key; priva.. 더보기
1탄 - 스프링을 이용해 Rest API 만들어보기 전통적인 웹 애플리케이션은 주로 서버사이드에서 화면에 필요한 모든 데이터를 만들어서 브라우저에 전송해주고, 브라우저는 단순 뷰어 역할에 그치는 형태였습니다. 요즘의 서버는 브라우저나 모바일에서 필요한 순수한 데이터만을 전달하는 API 서버의 형태로 변화하고 있습니다. 예컨대, 검색 API 서버는 검색의 결과를 XML이나 JSON의 형태로 전달하고, 브라우저나 모바일에서는 이를 가공해서 사용자에게 보여주는 방식입니다. 즉, 브라우저에서 서버에 기대하는 것은 완성된 HTML이 아니라 그저 자신에게 필요한 순수한 데이터만을 요구합니다. REST = Representational State Transfer 의 약어로 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 .. 더보기
[에러] MyBatis - selectOne으로 가지고 올 때 result가 null인 경우 처리 방법 문제원인 매퍼에 resultType = int 로 되어 있었고 DAO 에서 그 null값을 return해주려 하니깐 아예 서비스단으로 return 자체가 되지도 못했다. 아래가 문제의 코드다. 쿼리절에서 해당 조건에 만족하는 데이터가 없어서 NULL을 반환하는 상태이다. mapper.xml SELECT RANK FROM CHART WHERE SITE_NAME = #{siteName, jdbcType=VARCHAR} DAO.java public int getPreRank(Chart chart){ return sessionTemplate.selectOne("sourcemapper.getPreRank",chart); } 해결법 - null을 받아들일 수 있는 객체타입으로 바꿔준다. int → Integer m.. 더보기
[AWS] 내 PC에서 RDS에 접속해보기 & EC2에서 RDS에 접속해보기 1. 내 PC에서 RDS에 접속해보기 로컬 PC에서 RDS로 접근하기 위해서 RDS의 보안 그룹에 본인 PC의 IP를 추가해야 합니다. 내 PC의 IP EC2에 사용된 보안 그룹의 그룹 ID EC2에 사용된 보안 그룹을 RDS의 보안 그룹 규칙에 추가하는 이유는 이렇게 해야 EC2에서 RDS로 접속도 가능하기 때문입니다. 인바운드 규칙 유형에서는 MYSQL/Aurora를 선택하시면 자동으로 3306 포트가 선택됩니다. (저는 여러 명의 IP를 등록해서 양이 많지만 본인만 접근할 경우 본인 ip만 등록해주시면 됩니다) RDS와 개인 PC, EC2 간의 연동 설정은 모두 완료 되었습니다. 로컬에서 원격 데이터베이스로 붙을 때 GUI 클라이언트를 많이 사용합니다. MySQL의 대표적인 클라이언트로 Workbe.. 더보기
[JEUS] JEUS의 JAVA_HOME 변경이 안될 때 일반적으로 우리는 JAVA_HOME을 변경할 때에 고급시스템 설정에서 JAVA_HOME을 추가해 줌으로써 JAVA_HOME을 잡는다. 하지만 JEUS의 경우 이미 설치된 후에 JAVA_HOME을 아무리 변경해 주어도 변경이 안된다. 알고봤더니 이미 설치된 이후에는 C:\TmaxSoft\JEUS6.0\bin\jeus.properties.cmd 파일을 열어 JAVA_HOME을 변경해 주어야 한다. cmd 파일을 여는방법은 (Windows 기준) notepad라고 앞에 적어주면 열림 C:\TmaxSoft\JEUS6.0\bin>notepad jeus.properties.cmd 여기서 JAVA_HOME 부분을 수정해주면 된다. 더보기
[Git] 이클립스에서 target 폴더 ignored 하기 (커밋시 제외시키기) 깃헙 또는 SVN에서 프로젝트를 커밋할 시 제외해야 할 파일, 폴더 들이 몇가지 있다. 대표적으로 target 폴더인데 먼저 target 폴더에 대해 알아보자면, Maven으로 빌드를 하면 생기는 jar파일을 저장하는 것이 주요 일이다. 나중에 프로젝트 결과물인 jar 또는 war를 실서버에 반영할때에는 target 폴더 밑에 있는 jar나 war를 배포하게 된다. target 폴더를 모르고 삭제했다면 Maven Build를 하여 다시 만들 수 있다. 이러한 이유들로 target 폴더는 커밋의 대상이 아니다. target 폴더 이외에 .project .classpath .setting 등도 커밋의 대상이 아니다. 먼저 이 파일들을 커밋하지 않게 ignored 시키는 방법에 대해 알아보자. Window >.. 더보기
순열 (Permutation) 알고리즘의 모든 것 1~N까지 이루어진 수열을 생각해보자. 1 2 3 4 1 3 2 5 4 2 3 1 6 5 1 2 3 4 크기는 항상 N이 되어야 하고, 겹치는 숫자가 존재하지 않는다. 크기가 N인 순열은 총 N!개가 존재한다. 순열을 사전순으로 나열했을 때 N = 3인 경우에 사전순은 다음과 같다. 1 2 3 - 첫 순열 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 - 마지막 순열 첫 순열은 무조건 오름차순이고, 마지막 순열은 내림차순임을 알 수 있다. 순열을 사전순으로 나열했을 때, 사전순으로 다음에 오는 순열과 이전에 오는 순열을 찾아보자. C++ STL의 algorithm에는 이미 next_permutation과 prev_permutation이 존재하기 때문에 사용하면 된다. (이럴때마다 C++로 갈아타야.. 더보기
[백준][브루트포스][JAVA] 일곱 난쟁이 문제 링크 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난.. 더보기