일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ue5
- 필라델피아
- UE4
- java
- 증시
- 펜실베이니아
- spring
- jdk17
- rollbackOnly
- spring security
- JPA
- HRD
- spring message converters
- 월화수목금토익
- 최근증시
- AT&T
- 어학연수
- 삼성 플렉스북
- 유학
- kospi
- paper2d
- 주식
- @JsonView
- weblogic
- 인물
- 금융공학
- mastering unreal engine
- mysql
- flex하는게 아니었는데..
- 학생비자
- Today
- Total
목록Dev/Web (29)
HeBhy, since 1983.
public class WebConfig implements WebMvcConfigurer { ... @Override public void configureMessageConverters(List> converters) { // 기본 컨버터를 유지관리 converters.removeIf(v->v.getSupportedMediaTypes().contains(MediaType.APPLICATION_JSON)); // 기존 json용 컨버터 제거 converters.add(new MappingJackson2HttpMessageConverter()); // 새로 json 컨버터 추가. 필요시 커스텀 컨버터 bean 사용 } } 이후 왠만하면 'no converter for ~' 에러는 나오지 않을것입니다! 저..
부트스트랩 4 이상을 사용중인 경우, css파일 중 아래 내용때문에 결제창이 숨겨지게 됩니다. .fade:not(.show) { opacity: 0; } 해결책은 별도 스타일 css에 다음을 추가하여 예외를 지정해 주시면 됩니다. .inipay_modal.fade:not(.show) { opacity: 1 !important; }
Spring에서 hibernate(Jpa)사용시, Spring transaction(@org.springframework.transaction.annotation.Transactional)을 사용하면 JpaTransactionManager.setGlobalRollbackOnParticipationFailure(true)가 기본값이라서.. method 단위 호출시 하위 어느곳에서라도 에러가 뜨면 전체가 롤백되어버리는데요, 대안으로 @Transactional(propagation = Propagation.NESTED)를 사용하려고 하면, 전역롤백 설정을 변경하지 않고는 해당 method에서만 롤백을 방지하는건 불가능하다는 에러가 뜹니다. RollbackException: Transaction marked a..
jackson annotation에서 @JsonView를 적용하여 같은 Entity 에 대해 RestController mapping별로 다른 출력을 원할 경우, @RequestMapping(@GetMapping 등 동일..) 에 @JsonView를 붙이지 않으면 Entity에 선언한 @JsonView가 무효화 될 경우가 있습니다. 예를 들어, car entity안의 number라는 값에 @JsonView(JsonViewVisibility.ViewAll.class) private String number; 처럼 적용했는데, 그대로 json string이 출력됩니다. 그렇다고 일일이 @RequestMapping에 @JsonView(default class)를 붙일수는 없겠죠.. 그래서 @JsonView가 ..
@OneToMany 같은 1:n 관계에서.. 보통 위 검색어로 검색을 하면.. 추천답변이 CascadeType.ALL 이나 CascadeType.PERSIST 를 지우고 CascadeType.MERGE로 사용하라는 내용이 많습니다. (@ManyToOne같은 경우는 MERGE만 써도 무방합니다.) 하지만, 근본적인 문제해결이 될 수 없는 경우가 있는데, 바로 "orphanRemoval = true" 속성이 있는 경우입니다. 예를 들어, 게시판에 파일을 첨부하게 될 경우, 새 게시물에 PERSIST 속성이 없다면 파일첨부를 위해 추가 코드를 작성해야 할지도 모릅니다. (부모엔티티 save시 하위엔티티가 자동으로 PERSIST되지 않으므로 파일첨부가 안된다. -> 글 수정시에는 정상으로 파일첨부됨) 만일, o..
Redis 클러스터를 통해 메모리만 충분하다면.. 그리고 자주 갱신되지 않는 데이터라면 엄청난 속도 향상을 가져다 주는 캐시이니 꼭 사용합시다.. 1. 스프링 부트의 설정파일을 사용하지 않습니다. (커스텀 작업이 필요하므로) 2. 역직렬화시, 에러뿜뿜을 방지해줍니다. -devtools 안꺼도 됩니다. 에러가 나는 가장 빈번한 이유는 detach되지 않은(persistant bag)을 가진 entity를 그대로 저장했기 때문이니.. @Cacheable이나 @CachePut시에 cacheManager="gsonCacheManager"로 변경해주면 됩니다.. 3. 캐시별 시간 차등이(cacheName을 통해) 가능합니다. 4. Json 캐시매니저를 사용해서, 일반 객체로 저장(로딩)시 에러가 나는것들은 jso..
spring boot를 2.1 이상으로 업데이트 하니(spring security 5.1 이상) lg uplus 결제모듈 호출 후 리턴값 받고나서 계속 로그인이 튕겨서 보니 세션값이 있는 쿠키가 계속 삭제되더라구요.. cors, csrf문제인가 해서 별걸 다했는데 해결을 못하고.. 보니까 spring security 5.1이후 samesite 설정이 생겨서 'Lax'값이 디폴트가 되는 바람에.. 동일 도메인 요청에 대해서만 세션을 보내게 되어있더라구요..; 그래서 저 값을 "None"로 바꿔야 하는데.. 시큐리티 config파일에 다음 빈을 추가해 주시면 됩니다. public class SecurityConfig extends WebSecurityConfigurerAdapter{ // ...(중략) @B..
STS에서 작업하던 spring boot 프로젝트를 vscode로 옮겨보았습니다.. (git 이용) lombok extension이 있지만, 설치해도 lombok 어노테이션에서 무수한 에러를 띄우더군요.. 버전업을 못따라가서 그런듯.. 구글링하니 레드햇 익스텐션 사이트에 답이 있더라구요.. 아래 사이트를 참고했습니다. (https://github.com/redhat-developer/vscode-java/wiki/Lombok-support) 일단 lombok 홈페이지에서 최신 jar파일을 받습니다. (c:\dev\lombok.jar 로 옮겼다고 가정) (https://projectlombok.org/download) VSCode에서 [ Ctrl + , ]를 눌러 설정을 검색합니다.. [ vmargs ] ..
aws 인스턴스(서버)에서 타 서버 파일을 마운트하고 싶을때..(이왕이면 같은 인트라넷상 서버로..) 1.1.1.1 서버(이하 "1서버")의 /abc 폴더를 2.2.2.2 서버(이하 "2서버")의 /mnt/abc로 마운트하고싶다면..? 일단 공유해줄 서버에서 /etc/exports를 편집해주자. 이건 구글링 하면 되는데..기본옵션은 공유할폴더경로 2.2.2.2(ro,root_squash) 정도로 하면 되겠다.(쓰기가 필요하면 ro->rw) 3.3.3.3 서버도 하고싶다면 뒤에 IP추가하고 ()옵션도 똑같이 적어주자.. 그다음, centos7에서는 nfs설치가 되어있는데 활성화가 안되어 있다.. 활성화 시켜주자.. $ systemctl enable nfs $ systemctl start nfs 이제, 공유..
1. entity 사용 시, JSON API 등을 주고받을 DB와 관계없는 임시 객체를 별도로 만들지 않고 entity에 몇개만 추가해서 쓰고싶을 때, 변수 앞에 아래 @Transient annotation을 써주면 DB에 기록되지 않고 요긴하게 사용할 수 있다. public class User { ... @Transient private Foo tmpFoo; } 2. entity 에 포함된 연결된 객체(@OneToMany, @ManyToMany 등)가 lazy 모드일때, View또는 json 전달 시, Lazy handler 관련 에러 뿜뿜일때 아래 @JsonIgnoreProperties를 class 선언 상단에 써주면 해결. (모두 해결되는건 아니니 아래 3번도 참고.) @JsonIgnorePrope..
전화번호 입력시 input이 하나일때.. "-"를 자동 입력되는 소스를 찾다보니 긴게 많아서.. regexp를 응용하여 한줄짜리를 만들었습니다.. (실제로는 숫자가 아닌걸 제거 > "-" 추가 > 대시 중복("--")을 제거하는 3단계입니다) 050x번호나, 15xx-xxxx처럼 1로 시작하는 번호, 02서울지역번호 처리가 다 됩니다..(위키를 보고 했으니 국제번호 5자리 등을 빼고는 왠만하면 다 잘 될겁니다..) onkeyup 이벤트에 넣으면 실시간으로 변경하실 수 있습니다.. input의 class에 phoneNumber를 추가하시고 아래처럼 하시면 됩니다.. $(document).on("keyup", ".phoneNumber", function() { $(this).val( $(this).val()..
메일서버에서 sendmail으로 메일을 보내면 스팸메일(spam / junk)로 분류될 가능성이 높다.. gmail같은경우는 위 3개가 다 충족되어야 받은편지함에 들어가고(보안관련 이슈를 가장 중요시하는듯.. 그리고 자바스크립트가 들어가도 스팸으로 분류됩니다.) daum은 spf+dmarc까지는 해줘야 되고 (수정: 다음메일에 스마트필터가 생겨서 처음보는 도메인은 무조건 스팸폴더로 가니.. 다음메일 쓰는사람들에겐 메일 다른걸로 바꾸라고 해야함 ㅡㅡ; 어차피 다음메일 생성 이제 안됩니다.. 대신 카톡알림뜨는 카카오메일이 생겼어요..) 네이버는 위3개 안해도 된다.. 그냥 자체 필터링으로 거르는듯.. (아마 불편하다는 사람이 많아서 그런듯 하다.) (2019.11. 수정: 네이버 메일 보안정책이 바뀌어 해당..
Spring에서 @SafeHtml 을 쓰려는데.. validation과 연동되는 jsoup repository를 maven 등으로 불러왔는데도..클래스가 없다고 나오는 버그입니다. * package explorer > maven dependencies > jsoup~.jar > right click & select properties 로 가서 'Path' 를 수정해야 합니다. (jsoup-*-sources.jar -> jsoup-*.jar) repository가 불필요한 sources.jar까지 긁어와서 그런듯 합니다..
1. 태그에서 layout:decorator="html명" -> layout:decorate="~{html명}" 으로 바뀌었다. 2. 레이아웃 html의 태그 안에 같은 태그를 쓸 필요 없이 실 컨텐츠 페이지에서 태그 안에 나 자바스크립트, css등을 그냥 쓰면 레이아웃의 내의 태그에 덧붙여 자동으로 추가된다.(title은 덮어쓰기된다) 3. Spring security 확장 플러그인 사용 시(repository), Spring boot 2.0.x에서는 아직 thymeleaf-extras-springsecurity4로 쓰고 html 파일 태그에서도 아래처럼 sec 4버전으로 지정해준다. (Spring boot 버전 2.1.x 에서는 thymeleaf-extras-springsecurity5로 하면 된다)..
JPA entity에서 글이나 회원에 대한 세부정보(분리된 table)를 Lazy Loading(지연로딩) 하고 싶은데 @OneToOne 관계에선 @SecondaryTable 등을 해도 잘 먹히지 않는다..(방법이 있어도 지저분해진다) 간단하게 해결하기 위해서 @OneToMany (parent) / @ManyToOne (child) 관계로 한다음 List 등 배열의 0번 인덱스만 사용하면된다.. 끝.
1. application.properties 설정 (using mariaDB, maven) 1234567891011121314151617181920212223# ===========================# JDBC# ===========================spring.datasource.url=jdbc:mysql://localhost:3306/testDB?useSSL=false&useUnicode=yes&characterEncoding=UTF8&autoReconnect=true&autoReconnectForPools=true&allowMultiQueries=truespring.datasource.driverClassName=org.mariadb.jdbc.Driverspring.datas..
1. redis 설치 (CentOS 7) (참조: https://redis.io/download) $ cd /usr/local/src $ wget https://download.redis.io/releases/redis-5.0.10.tar.gz $ tar xvzf redis-5.0.10.tar.gz $ cd redis-5.0.10 $ make && make install $ cd utils $ ./install_server.sh * 버전업으로 인해 빌드에러가 나는경우.. 다음을 실행후 다시 install_server.sh 실행. yum install centos-release-scl yum install devtoolset-7-gcc* scl enable devtoolset-7 bash yum insta..
Hide outline using simple CSS code when A-Tag is focused. (both IE & FF) A태그만 누르면 생기는 아웃라인때문에 복잡한 코드 적느라 신경쓰이셨죠? 리소스먹는 자바스크립트를 쓰거나 IE에서만 되는 익스프레션 CSS를 쓰기는 비효율적입니다..; CSS파일이나 선언에 a:focus { outline:none; } 요놈 하나만 써주시면.. 끝입니다; a태그에서 포커스를 먹는순간 아웃라인을 감춰버립니다. ^^ 물론 IE, FF 다 되구요. 웹에서 하도 복잡한것들이 많아서~ 구글링해서 찾았습니다 ㅎㅎ
크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다. 개 요 데이터 캐싱은 자바 애플리케이션에서 매우 중요한 고려사항이다. 데이터 캐싱은 분산 애플리케이션에서 원격 호출의 수를 한정시키고 영구 데이터 저장에 대한 호출 수를 줄임으로써 웹 애플리케이션의 성능을 향상시킨다. 캐싱이 성능을 향상시키고 아키텍처가 실제로 동작하도록 하는데 기여하지만, 사실 설계를 복잡하게 하고 동시성 코드와 클러스터에 대한 동기화와 같은 복잡성을 유발시킬 수도 있다. 일단 데이터 캐싱이 아키텍처의 필요한 부분이라고 결정되었다면, 적합한 캐싱 솔루션을 채택하는 것이 어려울 수 있다. 항상 캐싱 솔루션을 구현하는데 선택사항이 있다..
레진 새 버전이 나왔네요. (좀 지났습니다만, 이제바꿨네요 ㅎㅎ) 이번에 특히 새로운점은, setup 다이얼로그 화면에서 windows의 service에 등록/삭제가 가능해졌다는점, 간단한 옵션을 지정가능하다는것입니다. 커맨드에서 직접 세팅해주지 않아도 되죠. ^^ (윈7에서는 관리자모드 실행 필수!) resin.xml 은 기존과 동일한것 같네요. 아무튼 써보니 약간 빨라진 느낌이 드는 것 같습니다. 제가 바꾼 설정은 -Xmx512m utf-8 요정도 입니다. (utf-8의 위치는 full.xml 참고) 세션타임아웃은 각 WEB-INF의 resin-web.xml 에 등록하시는게 좋을 것 같습니다.