목록분류 전체보기 (113)
고코딩
도커에 대한 개념이 항상 헷갈리고 무엇을 뜻하는지도 모르는 상태였다. 여러가지 구글링을 하던 중 잘 정리해 놓은 링크를 찾아서 여기에 적는다 도커 정리
JUnit 5로 바뀌면서 나온 이슈들 Cast Issue .andExpect(jsonPath()) 를 사용하면서 강제로 ResultMatcher 형태로 형 변환을 해야하는 Issue가 발생하였다. 이 문제들은 기존에 사용하던 라이브러리가 바뀌면서 생긴 현상인데 import 구문을 바꿔주면 된다. import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.assertj.core.internal.bytebuddy.matcher.ElementMatchers.is; import static org.mockito.Mockito.doReturn; import static org.springf..
java.lang.IllegalArgumentException:Illegal pattern character 'Y' 에러 java.text.SimpleDateFormat을 사용할 때 다음과 같은 에러가 나는 경우가 있다. java.lang.IllegalArgumentException:Illegal pattern character 'Y' 이 경우는 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd");에서 발생하는데 이유는 JAVA 8 이상에서는 SimpleDateFormat에서 Y(대문자)를 쓸수 있지만 JAVA 7 이하에서는 Y(대문자)를 인지를 못해서 y(소문자)를 써야만 한다!! 소문자로 작성하면 ..
Oracle DB 계정 대소문자 구분 회사에서 DB에 접속해 export/import를 해야할 일이 있어서 계정이름/계정비번 을 입력하니까 계속해서 로그인에 실패하였다. 혹시 내가 오타를 냈나 싶어서 로그도 다시 보고 이것저거 다 해봤지만 계속해서 로그인에 실패했었다. 20분간의 삽질을 한후 혹시 대소문자 구분을 하는건가 싶어서 소문자로 작성하였다.(필자는 참고로 SQL문을 작성할 때 Caps Lock을 켜 놓는다.) 결과는 로그인에 성공... 아니 처음 안 사실이다. sql문에서는 대소문자 구분 안하면서 로그인 아이디 비번은 대소문자 구분을 하다니 앞으로 주의해야 겠다.
오라클 프로시져 ROLLBACK COMMIT 기준 프로시져를 작성하던 중 EXCEPTION 발생시 ROLLBACK을 해야하는 경우가 생겼다. 근데 프로시져의 ROLLBACK의 기준을 알고 싶었다. ROLLBACK을 만나면 프로시져가 수행한 모든 명령문들이 프로시져 수행 전으로 돌아가는 건지 아니면 가장 최근 COMMIT 내역으로 돌아가는지 궁금했다. 참고로 COMMIT ROLLBACK은 다 트랜잭션 단위를 기준으로 하는 데이터 상태를 나타낼때 사용된다. 결론 결론 부터 말하자면 정답은 *ROLLBACK을 만나면 가장 최근에 COMMIT된 상태로 돌아간다. * 예제 코드를 보면서 이해해 보자 설명 TEMP.TABLE CREATE TABLE TEMP( TEMP_ID NUMBER, TEMP_NO VARCHAR..
JAVA CSV 파일 ""안의 , 무시하기 링크 참고 일하던중 CSV 읽는 형식을 짜야하는 순간이 왔다. 개발환경이 JDK1.6 이여서 openCSV라이브러리가 작동하지 않는다 ㅜㅜ 단순히 한줄씩 읽어 split(",")으로 잘라주고 싶었지만 예외의 상황이 발생했다. 우리가 알고있던 csv파일 형식은 a,b,c,d,f value1,value2,value3,value4,value5 value11,value22,value33,value44,value55 형식일 것이다. 하지만 만약에 값이 문자열이라면? 그 문자열 안에 ,가 들어가 있는게 정상이라면? split(",")으로는 문제가 발생할 것이다. a,b,c,d,f value1,"Value2 have , char value",value3,value4,valu..
log4j Java 실행시 에러 log4j:WARN No appenders could be found for logger (org.quartz.impl.StdSchedulerFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.slf4j 로그를 쓰고싶었는데 실행하니 위와 같은 에러가 떴다. 여러 블로그를 참조해 보고 찾아봤지만 나는 실행환경이 Simple Java Project여서 의존성 추가나 slf4j 설정을 만져주는 등 나에게는 올바르지 않았다. 그러던 중 간단한 해결 방법을 찾았다. 역시..
CSV파일 형식 회사에서 데이터를 넘기는 작업을 하던 도중 CSV파일 형식을 다루게 될 일이 생겼다. 이번 기회에(그나마 덜 바쁠때) CSV파일에 대해 정리해보겠다. CSV(파일 형식) CSV(comma-separated values)는 몇 가지 필드를 쉼표(,)로 구분한 텍스트 데이터 및 텍스트 파일이다. 확장자는 .csv이며 MIME 형식은 text/csv이다. 오래전부터 스프레드시트나 데이터베이스 소프트웨어에서 많이 쓰였으나 세부적인 구현은 소프트웨어에 따라 다르다. 그것들을 추가한 형태가 2005년 10월 RFC 4180에서 Informational로 사양이 문서화됐다. 비슷한 포맷으로는 탭으로 구분하는 TSV나, 반각 스페이스로 구분하는 SSV등이 있으며, 이것들을 합쳐서 CSV라고 부르는 경우..
[백준 17179번] 케이크 자르기 JAVA 케이크 자르기 이분탐색은 가장 감을 잡기 어려웠던 문제였다. 이분탐색이라는 것 자체는 알고 있었는데 이걸 활용하려고 하니 도대체 무엇을 탐색해야할지 모르겠다. 문제를 읽어보면 가장 작은 조각의 길이의 최대값을 출력하라라고 되어있다. 이분탐색에서는 우리가 찾고자하는 값을 정렬하여 이분탐색한다. 근데 문제에서 찾고싶은 값은 가장 작은 조각의 길이의 최대값? 가장 작으면서 최대값이라니 도저히 같이 쓰일수 없는 단어 두개가 같이 쓰였다.(작으며 최댁삾...) 이제부터 잘 생각해보자. 케익을 Q등분 할 것이다. Q등분 했을때 그중에는 가장 작은 길이를 가진 조각이 나온다 Q등분할 수 있는 방법은 엄청 많다. 이렇게 생각하면 갑자기 브루트포스 방식으로 풀어야 한다. 이렇..
Scouter APM APM (Application Performance Mornitoring) LG CNS : 컨설팅, 시스템통합 등 IT 서비스를 공급하는 LG그룹 계열의 정보기술 솔루션 및 아웃소싱 전문기업이다. 벤더(VENDOR) : IT업체에서의 벤더 개념은 일반적으로 판매인 또는 판매업자를 가리키는 말입니다. 특히 컴퓨터 시스템의 하드웨어나 소프트웨어 제품을 사용자에게 판매하였을 때 그 제품의 브랜드에 대해 책임을 지는 기업으로서 벤더는 제조업체일 수도 있고 판매 회사가 아닐 수도 있습니다. 어느 특정 회사의 제품만으로 시스템을 구축하는 것을 싱글 벤더라 하며 여러 회사 제품을 조합하여 시스템을 구축하는 것을 멀티벤더라고 합니다. XLog차트 : XLog차트는 모든 요청에 대해 하나의 점으로 ..
SpringBoot JPA 순환 참조 문제 및 해결 토이 프로젝트를 진행하던 중 순환참조 문제에 마주하였다. 순환 참조란 무엇일 까? 순환 참조(Circular reference)란, 참조하는 대상이 서로 물려 있어서 참조할 수 없게 되는 현상을 말한다. JPA에서는 양방향으로 연결된 Entity끼리 조회하는 경우 서로의 정보를 순환하면서 조회하다가 stackoverflow가 발생하게 된다. 그럼 순환참조가 왜 일어나는 것일까? JPA에서 순환참조 이유 Spring Boot는 @ResponseBody를 선언 할시 Object를 json상태로 변환하기 위해 Jackson라이브러리를 이용합니다. Jackson은 직렬화를 이용해서 json 형태로 객체를 변환시키게 됩니다. 직렬화란? 객체의 직렬화는 객체의 내..
스프링클라우드와 MSA의 이해 아래 링크의 블로그 글을 공부할겸 정리해보았습니다. 블로그 Springframework은 자바 기반 애플리케이션을 구축하는 사실상 표준 개발 프레임워크가 되었습니다. Spring은 의존성 주입(Dependenc Injection)이라는 핵심 개념에 기반을 두고 있습니다. 일반적인 자바 애플리케이션이 각 클래스가 애플리케이션의 다른 클래스와 명시적으로 링크된 클래스로 분해됩니다. 링크는 코드에서 클래스 생성자를 직접 호출하는 것으로, 일단 코드가 컴파일되면 이러한 링크 지점은 변경될 수 없습니다. 이러한 이유로 DI를 활용한 개발 방법으로 다양한 자바 클래스 사이의 매개체 역할을 수행하며 클래스 의존성을 관리하게 되었습니다. 스프링의 기능을 빠르게 추가해 사용성을 높인 덕분에..