본문 바로가기

728x90

개발

(130)
[MySQL] Error 1452 0 121 Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails (``.``, CONSTRAINT `FK_code_to_code` FOREIGN KEY (``) REFERENCES `` (``)) 0.016 sec 다음과 같은 오류는 외래 키를 조작(삽입,수정 등)할 때 발생한다. 기본 키가 사용하고 있는 값 이외의 값을 삽입하거나 수정하면 발생한다. 코드로 관리하는 코드 테이블에 새로운 코드를 추가하려다 해당 오류를 발생시켰다. 참조 테이블에도 입력,수정하려는 데이터를 입력시켜주고 등록하거나, 외래키 제약조건을 무시하도록 설정하고 입력하면 해결할 수 있다. 1 2 3 4 외래키를 무시하게 처리 SET fore..
Mapper XML MyBatis resultMap 사용하기 ( List 불러오기, 반복문 없이) 나는 현재까지 개발하면서 ResultMap의 존재를 몰랐다. 그래서 1 : N 의 구조나 N : N 의 구조에서 데이터를 가지고 올 때, Service Layer에서 항상 for문을 돌려서 DB에 여러번 접근하는 것으로 해결거나 DB 조인을 이용해 왔다. (예를들어, 수강생이 신청한 여러개의 수강과목의 정보를 불러올 때) 하지만 ResultMap의 경우, VO에 List 형태로 변수만 선언해주면 한번의 DB접근으로 해당 데이터들을 모두 가져올 수 있고, 또 보기에도 소스가 깔끔해 보였다. [다음 예제를 보자] 이런 구조의 테이블에서 나는 한 학생에 대한 정보, 학생이 수강한 과목 정보를 가져오려고 한다. 해당 예시는 물론 DB 내에서 처리하면 쉽게 가져올 수 있지만, ResultMap의 예제를 보여주기 ..
REST API란 REST API ( Representational State Transfer Application Programming Interface) REST는 아키텍처 원칙이다. 쉽게 말해서, 서버와 클라이언트간에 무언가 정보교환이 존재할 때, REST 아키텍처가 정해놓은 규칙에 따라 요청 및 응답을 하는 것이다. API는 애플리케이션 프로그래밍 인터페이스의 약자로, 애플리케이션 소프트웨어를 구축하고 통합하는 프로토콜 세트이다. API는 정보를 제공하는 자와 정보를 사용하는 자가 존재하고, 사용자의 호출과 제공자의 응답으로 이루어져 있다. 요약해서 API를 구현할 때, REST아키텍처에 따라 개발을 하게 되면, 해당 API는 REST API라고 간주될 수 있는 것이다. REST API 설계 - URL 주소는 [동..
[Gitlab] Gitlab이란 무엇일까 / Gitlab PC에 설치하기 [2] 지난 포스팅에서 가상화 서버에 Gitlab 설치까지 완료된 상태이다. 나는 지난 시간에 Gitlab을 설치하는 것까지 마무리 지었다. 하지만 포트 설정을 가상화 서버의 사용중인 포트로 입력해서 수정할 필요가 있었다. Putty로 Gitlab이 설치된 ubuntu에 접속한다. 먼저 root 로 권한을 변경한 뒤, 아래 명령어를 입력하여 vi에디터를 연다. (root로 변경하는 방법은 [su - ] -> 비밀번호 입력) 1 2 vi /etc/gitlab/gitlab.rb cs 에디터를 오픈하고, /external_url 을 입력해서 내가 설정했던 URL 정보를 찾는다. 해당 부분을 찾았으면, 변경할 URL을 입력한뒤, :eq! 를 입력해서 저장 후, 빠져나온다. (되돌아가고 싶다면 Ctrl + Z) 이 후,..
[Gitlab] Gitlab이란 무엇일까 / Gitlab PC에 설치하기 프로젝트를 관리하기 위해서는 소스관리가 필수적이다. 기존의 소스와 수정된 소스의 비교, 수정해왔던 히스토리, 협업을 통한 소스공유 등 시스템을 운영할 때는 소스코드를 관리할 수 있는 기능이 필요하다. 이처럼 형상관리를 도와주는 프로그램들이 여러개 있는데, 그 중 하나가 Gitlab이다. Gitlab은 Github를 내 서버에 직접 설치해서 사용 가능한 설치형 버전관리 시스템이다. 깃랩의 장점에는 - 개인 서버에 설치 가능 - 비공개 프로젝트를 무료로 진행할 수 있음 - Git 원격 저장소를 제공함 Git의 구조 1. 로컬 저장소 (Working Directory or Local Repository) : 내 피시에서 소스파일을 작업하는 공간 - Stage Area (Index) : Git에 대한 메타데이터..
[JAVASCRIPT] 팝업 DIV 창, 다른 영역 클릭해서 닫기 1 2 3 4 5 6 7 8 9 function initMouseClickEvent(){ $(document).mouseup(function(e){ var sch_container = $("DIV명"); if(sch_container.has(e.target).length ===0) sch_container.hide(); }); } Colored by Color Scripter cs mouseup 이벤트를 이용해서, 생성된 DIV 팝업 창의 외부 영역을 클릭했을 때, 해당 DIV 창의 옵션을 변경함으로써 팝업을 숨긴다.
[JAVA] 체육복 [알고리즘 예제] 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
[JAVA] 가운데 글자 가져오기 [알고리즘 문제 풀이] 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 "abcde" "c" "qwer" "we" 1 2 3 4 5 6 7 8 9 10 11 12 public static void main(String[] args) { solution("apple"); } public static String solution(String s) { String answer = ""; if(s.length()%2 ==1) answer =s.substring(s.length()/2,s.length()/2+1); else answer =s.substring(s.length..

728x90