Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.SimpleLoggerFactory loaded from file:/C:/Users/dellw/.gradle/caches/modules-2/files-2.1/org.slf4j/slf4j-simple/1.7.28/cf5f2cf3c31e0e41b68d932d756398a1238d4456/slf4j-simple-1.7.28.jar). If you are u..
* SessionFactory(SF) 를 EntityManager(EM) 로 부터 가져온 후 이 SF 로 부터 가져온 세션으로는 Session#update() 가 실행은 되지만 실제로 DB 반영은 이루어지지 않음. 별다른 오류메시지는 없음. * Session#flush() 를 해야 DB 에 반영이 되나 싶어 추가시키자 다음 오류 발생 org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress * 해결 ] SessionFactory..
* 개요 Hibernate 3 에서 쓰던 코드를 Spring 5 , JPA , Spring boot 환경으로 가져오는 중 DAO 에서 HibernateDaoSupport 를 버전 5로 import 바꾼 후 (다 됐다고 생각했는데) 실행시켰는데 오류 남. Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.hibernate.SessionFactory' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} * 환경 Spring 5 Spring..
* 전반적으로 이것저것 많이 나열한 포스트 http://wonwoo.ml/index.php/post/2181 JPA 까먹지 말자! (2) 오늘은 저번시간에 이어서 JPA 까먹지 말자! (2) 를 시작해보자. JPA라 했지만 구현체는 hibernate 기준으로 설명하니 다른 구현체들은 조금씩 다를 수도 있으니 참고하면 되겠다. 또한 종종 hibernate 이야기도 있을 수도 있다. @GeneratedValue strategy JPA에서는 @GeneratedValue 어노테이션의 strat… wonwoo.ml 테이블 A 를 Ta 라 함. 테이블 B를 Tb 라 함. 이후 모두 같은 패턴. * OneToOne 기본 Ta 1:1 은 lazy 위해 다른 방법 있는듯 (@LazyToOne) http://wonwoo...
https://www.concretepage.com/build-tools/gradle/gradle-include-dependency-on-another-project-execution-order 내 프로젝트 A를 프로젝트 B 를 끌어다 쓰기 1. settings.gradle 파일에 prjB 를 가져오도록 등록 rootProject.name = 'prjB' include ':prjA' project(':prjA').projectDir = new File(settingsDir, '../prjA') 콜론 붙여야 함. settingsDir 은 그대로 쓰면 됨. ../prjA 이므로 프로젝트 경로는 같은 워크스페이스의 폴더명 prjA 를 사용하고 있는것. 2. build.gradle 파일에서 prjB 에 대한 의..
* 개요 게시물 박스가 브라우져 줄이면 알아서 개행. 박스는 좌측정렬하여 순서대로 배열 그 전체 모양은 가운데 정렬 상자모양 (게시물 목록) div 5개 배치 (div31,32,33,34,35 라고 부름) 그 위에 div2 를 씌움 그 위에 div1 을 한번 더 씌움 div1과 div2 는 height : 0 상태로 생성됨. * div31~35 는 좌측으로 1열로 늘어서지만 float:left; 를 주면 위처럼 1 2 3 4 5 모양으로 배열됨. * div2에 display:inline-block; 을 붙이면 내용에 맞게 height 가 증가하고, div1 도 함께 증가함. (div1는 block인데?) * div1 에 text-align:center 를 주면 div31~35 가 가운데 정렬함. div2..
*개요 td를 비율로 고정했음에도 안의 텍스트 길이에 따라 크기가 바뀌는 현상 .. .. .td1 { width : 5% } .td2 { width : 10% } ... * 해결 table 에 다음 속성 적용 table-layout:fixed; - 텍스트가 td의 바깥으로 넘어간다면? display : inline-block; white-space : nowrap; overflow : hidden; /*inline에는 안먹힘.*/ (또는 text-overflow : ellipsis) * 기타 td 안에 span - 그 안에 텍스트 넣는다면? (table-layout:fixed 없다면) 텍스트가 늘어날 수록 td 크기도 함께 늘어남. span 의 크기를 50% 로 줄이거나 td 의 크기를 100px 식으로..
* 개요 div1 안에 div 2(안에 table 가짐) 있음. div 1 의 height=0 이라 div 2 보다 작음. - 참고 : div 1 안에 table 있는 경우 div 는 테이블보다 작아지지 않았음 * 해결 overflow: auto; https://stackoverflow.com/questions/384145/expanding-a-parent-div-to-the-height-of-its-children * 해결 2 float : left 설정되어 있다면 지울것
... 이어짐 * 병장 우리가 해안에서 심심해서 했던 놀이 중 하나는 이종격투기였다. 취사장 청소가 끝나고 나와 킥복싱을 했다는 6개월 고참은 간단한 스파링을 했고 손가락이 부었다. 정기적으로 오는 군의관에게 손가락을 매주 보여줬지만 큰 문제 없고 쉬면 된다고 했다. 병장 휴가를 나갔을 때 손가락이 부러졌다는 것을 알았다. 수술을 하고 3일간 입원을 해야 했다. 돌아와서는 연대본부 의무실에 입실했다. 약 2주 정도 있었다. 근무도 없으니 편히 쉬고 싶었지만 눈이 오면 환자들을 불러내어 눈을 치우게 했다. 부러진 손가락은 장갑을 낄 수 없어 주머니에 넣고 한손으로 깨작깨작 눈을 치웠다. 군대에서 의무대 관련 기억은 좋은게 하나도 없다. (누구나 그렇겠지만) 사실 병장이 되고 난 후의 기억은 흐릿하다. 똑같..
... 이어짐 2004년 7월, 해안GOP 투입을 며칠 남기지 않은 시점 나는 입대 1주년을 맞이했다. 나는 탄약고 야간 근무를 서고 있었다. 함께 근무서던 고참이 축하해줬다. 하늘의 별을 보며 군대에서 보낸 1년을 돌이켜봤다. 끔찍하게도 길었다. 1년이란 시간이 이렇게 길었나 싶을 정도로 많은 일이 있었다. 그리고 앞으로 똑같이 1년이 더 남았다는 생각이 들었을때 뭔가 아찔한 막막함을 느꼈다. 어딘가 좁은 곳에 갇혀서 느끼는 폐소공포증처럼(그리고 실제로 갇혀있는거지만...) 가슴 속 한구석이 미칠듯이 답답했다. 나는 정이 없는 사람이라고 생각했는데 가족들이 보고 싶고 친구들이 보고 싶었다. "보고싶어 미치겠다" 라는 말은 전혀 과장된 말이 아니다. 경험해본 사람만이 안다. 상병은 해안GOP 에서 시작되..
무장공비 작전, 해전 등 전투 후기들은 찾아볼 수 있다. 하지만 이건 그냥 지극히 평범한 육군 보병의 어느 훈련기이다. 특별한 사건도 있었던 것도 아니고, 다른 누군가의 훈련보다 더 힘들었던 것도 아니다. 하지만 누군가는 궁금해하고, 누군가는 공감할 만한 글이 되지 않을까 싶어 남긴다. 훈련의 시기는 2003년, 지금으로부터 15년전이다. 수양록의 기록을 보며 기억을 되살려 본다. * 당시 난 이등병이었다. 자대 배치를 받은 후 아직 뭔지 제대로 파악도 안 되는 시기였다. 자대 배치 후 첫 며칠은 침상에 앉아서 주인을 기다리는 개처럼 훈련 나간 고참들을 기다리는게 일과였다. 처음 하루이틀은 나에 대해 무척 궁금해했고, 딱히 반기지도 싫어하지도 않는 눈치였다. 고참들은 아침을 먹고 어디론가 사라졌고 하루종..
... 이어짐 * 일병 해가 바뀌고 난 일병이 되었다. 다행히 겨울이 심하게 추운 곳은 아니었다. 가끔은 눈이 왔다. 강원도의 눈은 예전에 본적이 있다. 12살때 쯤 친척형의 군 면회를 갔을때 기록적인 폭설이 내렸었다. 그 당시에는 훈련소 퇴소식에 부모님이 참가하고, 나라에서 숙소를 잡아주고, 외박을 할 수 있었다. 그 면회외박에 함께 갔었다. 이제 막 이등병이 된 친척형의 훈련소 퇴소 모습을 보았다. (의장대 공연 비슷한 걸 했다.) 그때 온 세상이 눈으로 덮혀있었다. 내가 맞이한 눈은 다행히 그 정도는 아니었다. 고참들도 올해는 눈이 많이 오지 않는다 했다. 하지만 한번 내리면 허리까지는 쌓이는 눈이었다. 눈은 눈삽으로 치워야 하지만 졸병에게는 플라스틱으로 된 넓은 눈삽은 주지 않는다. 난 일반삽(공..
... 이어짐 * 자대배치, 이등병 내가 배치받은 '이상한 나라'는 산 중턱에 있었다. 언덕에서는 멀리 바다가 내려다보였고 부대 자체는 산에 둘러쌓여 있었다. 첫 배치 받는날, 부대로 올라가는 길은 급경사였고 바람이 쏟아져 내려와 몸을 가누기 힘들 정도였다. 산 아래와는 달리 안개비가 날리고 있었다. 칙칙한 하늘아래 곧 무너질 듯한 건물이 보였고, 한쪽 구석에서는 새까만 사람들이 낙서투성이의 낡은 활동복을 입고 담배를 피우고 있었다. 군인이라기 보다는 거지 새끼나 노예들 같다는 생각을 했다. 얼굴도 하나같이 그을리고 꼬질꼬질한 인상이었다. 그들이 내 고참이었다. 배치된 부대는 평범한 소총중대였다. 전입신고를 마치고 백여명의 중대원들이 가득찬 복도는 답답하고 습했다. 내무실로 돌아가자 험상굳은 사람들이 3..
나는 2003년, 그러니까 글쓰는 시점 기준 15년 전에 입대했다. 군생활이 2년 2개월에서 2년으로 줄어드는 시점이었고, 그래서 난 2년 2주의 군생활을 했다. 강원도의 육군 보병의 기관총사수였다. 제대한지 13년이 된 시점에서 군생활에 관련된 글을 쓸 이유는 딱히 없지만, 내가 PC 통신 하던 시절에는 다양한 군생활에 관련된 얘기들이 있었고, 난 그런 글들을 읽으며 한때는 군인이 되고 싶은 로망도 있었다. 요즘엔 그런 글들이 많이 사라진 것 같다. 좀 오래됐지만 지극히 평범한 군생활이 어떤 것인지를 아직 가보지 못한 사람들에게 전달하고자, 그리고 이미 다녀온 사람이라면 인생의 가장 큰 기억으로 자리잡을 추억을 함께 공감하고자 이 글을 쓴다. 입대한 날은 2003년 7월이었다. 그 당시엔 보충대란 것이..
https://stackoverflow.com/questions/2147303/how-can-i-send-an-inner-div-to-the-bottom-of-its-parent-div https://ko.learnlayout.com/position.html 1. 부모요소 position : relative; 2. 자식요소 position : absolute; bottom : 0; 자식이 부모의 바닥에 있으니까 자식에게 relative 주는거? 는 틀림 relative 는 부모가 아니라 '이전 요소' 의 다음 부터 상대적 위치를 지정.
* 개요 Spring Boot + 내장 tomcat 프로젝트 실행은 되나 페이지 접근시 다음 오류 발생 java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getHttpServletMapping()Ljavax/servlet/http/HttpServletMapping; * 해결 Refresh gradle project + Project build
1. 계정 생성 아이디가 abc 라면 abc.cafe24.com 이런 주소로 사용 가능하므로 참고. 여러개 아이디 사용 가능하니 큰 문제 될건 없다. 계정로그인 패스워드 외에 FTP 등에서 사용할 비밀번호를 정하게됨. 스페셜호스팅 - Tomcat 호스팅 신청. 비즈니스 이상(월 5500원) 서비스를 신청해야 JVM 128M 를 받게 된다. 그 이하는 메모리 부족 오류가 난다. (Spring boot Project 라 환경 : Tomcat 8, Java 8, MariaDB 10 2. DB 세팅 MySQL workbench나 HeidiSQL 등으로 접속하기 위해선 외부접속을 설정해야함 나의서비스관리 - 기본관리 - 서비스사용현황 - MySQL 외부 IP 접근 설정 에 IP 를 등록해야 함. abcd.cafe..
* 개요 Spring Boot PRJ 를 WAR 로 배포했는데 오류 발생 로그에 다음과 같은 내용 보임 org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set * 환경 MariaDB JAVA 8 Spring 5 * 해결 https://stackoverflow.com/questions/26548505/org-hibernate-hibernateexception-access-to-dialectresolutioninfo-cannot-be-null aplication.properties 파일에 다음 코드 추가 spring.jpa.properties.hibernate...
* 개요 gradlew war 했는데 어디서도 war 파일 이 없다 * 로그 추적 실행> gradlew war --info Initialized native services in: C:\Users\dellw\.gradle\native ... 중간 생략 ... > Task :war SKIPPED Skipping task ':war' as task onlyIf is false. :war (Thread[Execution worker for ':',5,main]) completed. Took 0.0 secs. BUILD SUCCESSFUL in 3s 2 actionable tasks: 2 up-to-date war task 가 skipped 이라네.. * 해결 build.properties 에 다음 코드 추가 ..