본문 바로가기

전체 글

[ 백준 14891 ] 톱니바퀴 ( 자바 ) https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터www.acmicpc.net 핵심1. call by reference가 아닌 call by value로 dfs 값 전달dfs의 종료 조건들을 상단에 두기 위해서 문제 흐름과 조금 순서가 바뀌었다. 예를들어 처음 A 톱니바퀴 회전 요청 -> A 톱니바퀴 회전 -> 맞물린 옆 B 톱니바퀴 회전 요청 -> B톱니바퀴가 A톱니바퀴와 맞물린 극이 다른지 체크 -> ... 와 같은 순서로 구현했다. 그런데 이 때 'B톱니바퀴가 A톱니.. 더보기
java int를 char로 형변환하기 1. (char) 형변환 int value = 1; // value을 아스키코드로 변환한 값 -> 의도치 않은 문자 나옴 char valueToChar = (char)(value); // '0' 아스키코드를 value 만큼 증가시킨 후 변환한 값 char valueToChar2 = (char)(value + '0'); 2. Character.for(int digit, int radix) // Character.forDigit('9', 10진수) Character.forDigit('9', 10) 더보기
eclipse 파일 저장시 공백 제거 git 올릴 때 공백 제거방법 https://teddyh.tistory.com/11 eclipse 파일 저장시 공백 제거. Any Edit 에서 지원 하는 기능 중 하나인 파일 공백 제거. 해당 플러그인을 이클립스에 설치하면 프로젝트 형상 관리시에 불필요한 커밋을 많이 막아준다. 소스도 용량도 많이 줄어듬. Window -> Prefer teddyh.tistory.com 더보기
SpringFramework에서 property 파일 읽어오기 여기서 설명은 spring framework에서 maven archeytype 프로젝트를 만들었을 때 property를 읽는 방법에 대해 설명한다. 1 resource 폴더가 없어서 추가 해야한다. maven 프로젝틀 만들면 resource 폴더가 없다. 그래서 src/main/ 에 resource 폴더를 만들어야 한다. 만들고 나면 ide에서 Java build path에 등록하면 컴파일러가 알 수 있게 된다. . *.java 파일처럼 컴파일 대상이 되는 소스파일이 아닌 파일들을 리소스 디렉토리에 저장하여 관리 2. @Configuration 설정 클래스에서 propertiesFactoryBean 등록 설정에서 @bean 메소드로 등록하여 property 파일에 접근할 수 있다. 3. @Value 어노.. 더보기
static, final, static final 특징 회사 코드를 봤을 때 'static final' 형태로 한쌍으로 자주 사용되고 있는 경우가 많았다. 특히 상수들을 정의해둔 클래스에서 많이 보였다. 있는 그대로 보자면 인스턴스 생성 전에 immutable 상수를 할당하여 다른 객체가 만들어질 때 사용되었다. 이 참에 전체적으로 정리를 하고자 한다. static(정적)이란 static이란 고정된 의미로 static이 붙은 클래스 멤버는 해당 class에 고정됨을 의미 class에 고정된다는 것은 프로그램이 실행되고 메모리에 적재될 때 class와 같이 메모리에 적재된다. 따라서 class로 인스턴스를 생성하기 전부터 static 멤버는 사용가능하다. static 멤버가 할당되는 메모리는 static area 다. 모든 객체가 공유할 수 있다. 로딩되면서부.. 더보기
[Spring] Caused by: java.lang.IllegalStateException: Ambiguous mapping 에러 개발한 것을 테스트 중 다음과 같은 에러가 떴다. Caused by: java.lang.IllegalStateException: Ambiguous mapping 빌드 중 에러가 나고 mapping 시 문제가 있다고 한 것을 보니 Handler Mapping 에 등록 중 문제가 생긴 것 같다. 그래서 controller를 다시 보니 중복된 api가 있었다. Spring이 구동시 등록할 때 똑같은 url api가 있으니 애매했나보다 더보기
Maven을 이용한 웹 어플리케이션 생성 및 설정 1. 이클립스를 실행하고, 이클립스의 메뉴 중 File - New - Project를 선택합니다. Maven프로젝트가 기존 워크스페이스 경로에 생성되도록 합니다. Maven에 대해 더 알아보기 위해 웹 어플리케이션 프로젝트를 생성하고, 실행해보도록 하겠습니다. 2. 아키타입(Archetype)을 선택합니다. 아키타입이란 일종의 프로젝트 템플릿(Template)이라고 말할 수 있습니다. 어떤 아키타입을 선택했느냐에 따라서 자동으로, 여러 가지 파일들을 생성하거나 라이브러리를 셋팅해주거나 등의 일을 해줍니다. Maven을 이용하여 웹 어플리케이션을 개발하기 위해서 apache의 maven-archetype-webapp를 선택한 후 Next 버튼을 클릭합니다. 3. package 이름 설정 package이름은.. 더보기
like 절 주의할 점 필요하지 않은 디비 값까지 조회되는 운영이슈가 있었다. db 쿼리문 조회 시 검색조건에서 예외케이스 있음을 알게된 경험이 있다. 로그부터해서 api 까지 거꾸로 따라가다가 like 절에서 escape 처리가 필요했던 부분이다. 언더바( _ )가 포함된 이름을 조회 시 엉뚱한 결과가 조회될 수 있다. WITH temp AS ( SELECT 'STEVEN_KING' AS ename FROM dual UNION ALL SELECT 'StevenMarkle' AS ename FROM dual ) SELECT * FROM temp WHERE ename LIKE '%_%' 언더바(_)는 LIKE에서 사용하는 패턴 문자이기 때문에 해당 문자를 직접 조회할 수가 없다. 언더바(_)가 존재하는 이름만 검색하였지만 결과는.. 더보기