일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 자바의정석
- mvc 동작
- CPU
- 프로그래머스
- 객체지향
- 오버로딩
- over()
- 쿠키
- 다형성
- 혼공얄코
- 캡슐화
- spring security
- 멀티프로세싱
- 오버라이딩
- 개발자도구 활용
- hackerrank
- spring security 설정
- sec태그
- 리눅스
- 자바의 정석
- 중단점 활용
- 개발자도구 설정
- mvc 구성요소
- 개발자도구 breakpoint
- 오블완
- 입출력
- 멀티태스킹
- SQL Mapper
- java
- 티스토리챌린지
- Today
- Total
목록전체 글 (127)
쉽게 쉽게

1. 이슈 리눅스를 통해 마리아DB 계정과 테이블을 만들어 사용해야 하는 상황이었다. 그래서 사용했던 리눅스 명령어와 DB연동 시 나타났던 오류들을 정리해 봤다. 2. 마리아 DB 계정생성 먼저 마리아DB에 접속을 해야 한다. 보통 mysql -u root -p로 접속할 수 있다. 이때 발생할 수 있는 mysql 명령어 오류 계정생성을 위해 mysql -u root -p 명령어로 생성한 DB에 root계정으로 접속할 것이다. 이때 "Error - bash: mysql: command not found" 이런 오류가 나타난다면 명령어의 경로를 환경변수로 지정해주지 않아서 그렇다. [ 해결방법 ] 1. 환경변수에 mysql 명령어를 추가하거나 https://ryean.tistory.com/5 [MySQL] ..

1. 이슈 속도가 너무 오래 걸려 불편을 주는 Mysql 쿼리를 발견하여 이를 개선하고자 했다.속도저하의 원인으로는 Join시 데이터가 많은 테이블의 값을 읽어오는데 오래 걸렸던 것으로 짐작된다. 이를 해결하고자 인덱스, 쿼리개선, DB 격리수준 변경 등 다양한 방법을 진행했다. 2. 쿼리 SELECT A.name , B.code, C.text FROM SmallTable A INNER JOIN MiddleTable B ON A.user_code = B.user_code INNER JOIN LargeTable C ON A.user_code = C.user_code AND C.ROLE = (SELECT ROLE FROM LargeTable WHERE user_code = ..
1. 이슈 페이징을 구현하는 과정에서 Map에 있는 값을 int로 가져와서 사용해야 하는 일이 있었다. 그러나 int로 강제 형변환해서 사용하면 될 거라 단순하게 생각했지만 오류가 발생했다. int current_page = (Integer)map.get("current_page"); -- java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer 발생 이를 올바르게 해결하려고 했다. 2. Map에 있는 값 형변환하기 첫번째로 Stiring -> int로 전환하여 사용하려 했다. int current_page = Integer.parseInt((String)map.get("current_page")); -- java..
1. 이슈DB작업을 진행하던 도중 지우면 안되는 테이블을 삭제하고 습관적으로 커밋까지 눌러버렸다.이 테이블을 복구하기 위해 방법을 찾아봤다. 2. 오라클 DB 삭제한 테이블 복구FLASHBACK : 특정한 시간 또는 시점으로 되돌릴 수 있는 기능 1) 휴지통에서 지운 테이블 확인SELECT * FROM RECYCLEBIN; 단 휴지통이 비어있는 경우 복구를 못한다.(PURGE를 한 경우) 2) 휴지통에 있는 테이블 복원FLASHBACK TABLE 테이블명 TO BEFORE DROP;3. 데이터 실수로 지우고 커밋 한 경우 복구 방법1) SYSTIMESTAMP를 이용한 데이터 검색 -- 10초전 데이터 조회 SELECT * FROM 테이블 AS OF TIMESTAMP(SYSTIMESTAMP-INTE..
1. 이슈프로젝트에서 JSTL을 이용하여 데이터를 보여주는데, 동적으로 변하는 변수를 사용하여 문을 구현할 필요성이 생겼다.(안그러면 모든 항목을 일일이 다 적어줘야 함..)이에 대해 알아봤다. 2. JSTL 동적 변수 ${item[index]} 예를 들어 it_1, it_2, it_3..... it_100까지의 데이터를 보여줘야 한다면 이를 일일이 100개의 데이터를 작성하기엔 무리가 있다.이때 동적으로 변하는 변수를 값으로 두어 한 번에 처리할 수 있다. 이런식으로 할 수도 있다. ${item[index]} 참고https://gomest.tistory.com/39 [JSP] jstl 동적 변수 사용DB 에서 데이터를 가지고 오다보면 info1 ,..

1. 이슈프로젝트 도중 오라클 DB 마이그레이션 중 중복된 데이터가 생성되는 경우가 존재했다.이를 제거하기 위한 쿼리문을 찾아봤다.2. 중복된 데이터를 삭제하는 쿼리문중복된 데이터는 조건 없이 하나만 남기고 삭제DELETE FROM 테이블명 WHERE ROWID IN ( SELECT ROWID FROM ( SELECT * FROM ( SELECT ROW_NUMBER() OVER(PARTITION BY 중복컬럼명 ORDER BY 중복컬럼명) AS num FROM 테이블명 ) WHERE num > 1 ) ); 이 쿼리문을 해석하면먼저..

1. 문제 해석contest_id, hacker_id, name 출력각 대회 별 total_submissions, total_accepted_submissions, total_views, total_unique_views의 합계를 출력4개의 합계가 모두 0이면 해당 대회를 결과에서 제외단 특정 대회는 한 개 이상의 대학에서 후보자를 선별하는데 활용될 수 있지만, 각 대학은 하나의 대만 개최해답예시 2. 풀이1. 대회에 속한 챌린지를 확인하기 위해 Contests, Colleges, Challenges 테이블을 Join 한다.SELECT A.contest_id, A.hacker_id, A.name FROM Contests A, Colleges B, Challenges CWHERE A.contest_id =..
1. 이슈 프로젝트 도중 ibatis를 이용한 insert문을 작성했다. 그리고 return 값을 idx로 받았다. 그러나 이 insert 결과로 NullPointException이 발생했다. 분명히 모든 파라미터 값도 잘 들어와 있고 sql 문만을 실행했을 때도 잘 작동했는데, NullPointException이 뜨니 당황했다. 그래서 이 이슈를 해결하기 위해 ibatis의 DML문이 return 하는 결과값을 찾아봤다. int idx =sqlMapClientTemplate.insert("user.insertRequest", request_map); -- nullPointException이 뜨는 오류 발생!! -- 2. ibatis return값 성공 실패 insert() null 에러 update()..

1. 문제해석1번 해석OCCUPATIONS 테이블에 있는 모든 이름과 각 직업의 첫 글자를 괄호로 묶는다.이름의 알파벳순으로 정렬2번 해석OCCUPATIONS 테이블에서 직업과 각 직업의 수 출력 ('There are a total of [직업 수][직업명]' 형식으로 출력)직업 숫자, 직업 알파벳 순서로 오름차순으로 출력직업은 소문자로 출력해답 예시Ashely(P)Christeen(P)Jane(A)Jenny(D)Julia(A)Ketty(P)Maria(A)Meera(S)Priya(S)Samantha(D)There are a total of 2 doctors.There are a total of 2 singers.There are a total of 3 actors.There are a total of 3..
프로젝트를 진행하다 안에 속성들을 submit 해주는 을 구현하려고 했다.을 테스트하던 중 버튼을 클릭하면 내용이 submit 되는 현상이 발생했다.아무것도 지정하지 않은 태그를 클릭하면 왜 submit이 되는 현상이 발생하는지 알아보고자 했다. 의 특징--생략--버튼버튼을 클릭하면 test.do로 submit이 되버린다.이런 현상의 원인으로는 기본적으로 button 태그에 type 속성을 지정하지 않으면 type이 "submit" 이 된다.때문에 명시적으로 type 속성값을 "button"으로 지정해 주어야 submit이 되지 않는다.잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다.