분류 전체보기
-
[java] 백준 알고리즘 2579번 계단오르기 풀이소스알고리즘/백준 알고리즘 2018. 5. 9. 10:32
문제를 푸는데 조건을 잘 이해하는게 중요하다고 느끼는데, 세세한 조건을 착각하는 경우가 많다. 이번에도 첫번째 계단을 꼭 밟을 필요가 없지만, 예시에서는 첫 번째 계단을 시작점과 동시에 밟아야한다고 혼자 착각해서 원리가 맞음에도 불구하고, 초기값으로 넣어줄 세번째 계단 때문에 계속 틀렸다고 떴다. 첫번째 계단을 건너 뛰고 바로 갈 수도 있는 경우를 넣어줘야했는데 말이다... 아래부터 문제와 풀이! 조건은 총 세가지가 있다. 조건 세가지 모두 만족하려면, 마지막 계단의 점수는 더해주고, 두번째 칸 전(-2)의 계단에서 바로 마지막 계단을 밟든지, 세번째 칸 전(-3)의 계단에서 마지막 계단의 한 칸 전(-1)의 계단을 밟고 마지막 계단을 밟으면 된다. 이렇게 밟으면 계속해서 계단의 텀이 지속해서 2칸씩은 ..
-
[Spring] log4j 설정하기(공유)웹 개발/Spring Framework 2018. 5. 8. 16:22
몇년 전 글이지만, 보기쉽게 설명돼있어서 공유~!(영어로 돼있지만, 코드나 소스를 보면 몰라도 할 수 있을 것 같아요) log4j를 스프링에서 설정하는데 이 포스팅에서 도움을 많이 받았슴다 사이트는 이쪽으로 :) JUnit에 필요한 디펜던시들.(버전: 2018-07-05 기준) 1234567891011121314151617181920212223242526272829303132333435 junit junit 4.8.1 org.slf4j slf4j-log4j12 1.7.7 org.slf4j slf4j-api 1.7.7 org.slf4j jcl-over-slf4j 1.7.7 org.lazyluke log4jdbc-remix 0.2.7 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-..
-
[MariaDB/MySQL]데이터 insert하면서 중복되면 update하는 기능DataBase/MariaDB & MySQL 2018. 5. 5. 14:34
다른 개발자분의 소스를 보다가 DB에 insert를 시행하는데 만약 데이터가 있다면 기존의 데이터를 덮어쓰기가 가능한 방법을 찾았다. MariaDB에만 있는 기능인지 오라클이나 다른 DB에도 있는 기능인지는 모르겠다. 일단, MariaDB/MySQL에 존재하는 기능이다. 그 기능은 INSERT ON DUPLICATE KEY UPDATE 기능이다. Primary key/Unique key가 기존에 존재하는 데이터를 찾을 경우, 그 데이터에 UPDATE를 하는 것이다. *쓰는 방법 예시 12345678910111213 INSERT INTO book_table SET book_seq = 1000 -- primary/unique key , book_title = 'greek zorba' , book_price ..
-
[iBatis+Spring+mariaDB] AUTO_INCREMENT의 초기화와 transaction에 관하여DataBase/MariaDB & MySQL 2018. 5. 3. 09:42
회사에서 iBatis를 사용하는 부분이 아직 남아있다.(대부분 MyBatis로 전환했지만.) iBatis부분에서 기능을 활용해 sequence를 만들어내고 있었다. 이 부분은 auto_increment로서 숫자가 자동으로 올라가고 있었다. 난 지금 JUnit test를 하는 중이기 때문에 클래스 부분에서 @Transactional을 적용하고 있었다. 몰랐던 사실이지만, auto_increment는 transaction이 적용되지 않는다는 것이었다. 그 뜻은 auto_increment는 rollback이 적용되지 않는다는 것. JUnit test를 할 때 이런 경우가 있다면, 테스트를 한 번 해보고 @Ignore처리를 하면 좋을 것 같다. auto_increment를 돌릴 수 있는 방법이 있다면, 직접 s..
-
[Spring] log4j2.xml 설정 정리(apache 로그 포함)웹 개발/Spring Framework 2018. 4. 26. 15:57
log4j2를 입맛에 맞게 사용하고 싶어서 정리해두기. - jdbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다. - jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. - jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다. - jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다. 예) log4j...
-
ResultSet이란?(짧막 정리)웹 개발/웹&프로그래밍 2018. 4. 26. 14:24
A table of data representing a database result set, which is usually generated by executing a statement that queries the database. 데이터베이스에서 쿼리문을 실행하면서 발생한 결과값을 데이터의 표로 나타낸다. A ResultSet object maintains a cursor pointing to its current row of data. Initially the cursor is positioned before the first row. The next method moves the cursor to the next row, and because it returns false when there ar..
-
[Spring] JUnit 테스트 단위별(메서드별)로 1개씩 수행하는 방법웹 개발/Spring Framework 2018. 4. 25. 17:03
위처럼 JUnit 테스트를 하면서 한 JUnit 클래스 안에 메서드가 많을 경우, 그때 그때 하나의 단위 테스트만 테스트 해보고 싶을 것이다. 이때 할 수 있는 방법은 총 2가지가 있다. 첫째는 메서드 이름에 블록을 만든 후, 오른쪽 마우스를 클릭. 그리고 Run As>JUnit Test를 실행하는 것이다. 단축키로 Alt+Shift+X, T이다. 이는 동시에 Alt,Shift,X를 누르고 손을 뗀 다음, T를 눌리면 된다.( ',' 쉼표 표시는 한 템포 쉬라는 뜻인가보다.) 두번째 방법은 소스창 아래에 JUnit 탭에서 테스트를 원하는 메서드에 마우스를 대고, 오른쪽 마우스 버튼을 클릭하고 Run을 실행한다. 이렇게 하면 하고 싶은 테스트를 하나씩만 수행할 수 있어 한 클래스의 모든 test 케이스가 ..
-
[java] 백준 알고리즘 1463번 1로 만들기 풀이 소스알고리즘/백준 알고리즘 2018. 4. 23. 19:24
다이나믹 프로그래밍 첫 문제. **아래 풀이소스 12345678910111213141516171819202122232425262728public class Baekjoon1463 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int X = sc.nextInt(); int[] min = new int[1000001]; // 10의 6승이 최대값이기 때문에 min[1] = 0; // 계산하기 쉬우려고 배열은 0번부터 시작하지만 인위적으로 1부터 시작하는 것처럼 만듦. for(int i=2; i