Web/스프링64 동기 비동기 블로킹 논블로킹 개념 정리 목차 동기/비동기 & 블로킹/논블록킹 동기(Synchronous) / 비동기(Asynchronous) 비동기의 성능 이점 동기와 비동기는 작업 순서 처리 차이 Blocking / Non-Blocking 비동기와 논블로킹 개념 차이 비동기 논블로킹과 콜백 함수 누가 제어권을 가지고 있느냐 동기/비동기 + 블로킹/논블로킹 조합 Sync Blocking 조합 실생활 동작 예시 코드 동작 예시 적용 프로그램 예시 Async Non-Blocking 조합 실생활 동작 예시 코드 동작 예시 활용 예시 프로그램 Sync Non-Blocking 조합 실생활 동작 예시 코드 동작 예시 활용 예시 프로그램 Sync Blocking vs Sync Non-Blocking Async Blocking 조합 Async Blockin.. Web/스프링 2024. 1. 18. [Spring] 필터(Filter)와 인터셉터(Interceptor)의 개념 및 차이 https://dev-coco.tistory.com/173 [Spring] 필터(Filter)와 인터셉터(Interceptor)의 개념 및 차이 개발을 하다 보면 공통적으로 처리해야 할 업무들이 많다. 공통 업무에 관련된 코드를 페이지마다 작성한다면 중복 코드가 많아지게 되고, 프로젝트 단위가 커질수록 서버에 부하를 줄 수도 있 dev-coco.tistory.com 개발을 하다 보면 공통적으로 처리해야 할 업무들이 많다. 공통 업무에 관련된 코드를 페이지마다 작성한다면 중복 코드가 많아지게 되고, 프로젝트 단위가 커질수록 서버에 부하를 줄 수도 있으며, 소스 관리도 되지 않는다. 이에 Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있는 다음과 같은 기능들을 지원하고 있다. 1.. Web/스프링 2023. 7. 18. [java-mongo] FindIterable 조회 방법 example 예제 spring에서 mongo 조회하는 방법은 몇가지 있어보인다. 검색에서 가장 많이 나오는 자료와 다르게... 기존 코드 쓰는 방식이 이거여서 ... 이 방식으로 찾았는데, 금방 나오지는 않는다. 그래서 정리 FindIterable iterable = db.getCollection("aaaaa").withReadPreference(ReadPreference.secondaryPreferred()).find(filter); FindIterable 이걸 쓰고 있는 환경이어서 여기에 맞게 필요했음 필요사항 greater than, less than 사용하여 비교, 비교값은 날짜(ISOdate) 비교필요 예제 코드 LocalDate now = LocalDate.now(ZoneId.of("GMT")); System... Web/스프링 2022. 7. 6. kafka 컨슈머 실패시 Exception 으로 조건 구분하기 Exception체크 목표 Exception을 다르게 발생시켜서 받는곳에서 익셉션에따라 다른 작동하게 하기 카프카에서 했던 내용이지 익셉션이 주된 내용이다 spring의 Exception핸들러라면 이런식으로 안하고 어노테이션으로 해도 자동으로 읽어갈텐데, 컨슈머는 익셉션 발생시 재시도(RecoveryCallback)에서 익셉션을 구분했어야 했다. ( commit 할지 안할지 선택해야해서 ) 이 경우 익셉션을 구분하려고 여러문서를 찾아봄 전체코드중 ... 몇가지만 가능한 부분이었음 처음에 정리를 안해놨더니.... 정확한건 기억이안남. 컨슈머에서 throw new BusinessException("http status not 200"); 발생 -> 재시도코드에서 받는다. 카프카 컨슈머 에러시 재시도 코드 @Bean public .. Web/스프링 2020. 8. 26. Get RequestBody and ResponseBody at HandlerInterceptor 컨트롤러 추가 호출 목표 스프링 REST API 호출시.. 해당 api를 파라미터값만 바꿔서 내부적으로 한번 더 실행시키게 하고 싶었다. 다른 해결방식도 있겠지만.. 이렇게는 안해봐서 .. 찾아봄 목표를 인터셉터 또는 필터로 해당 api 메소드 한번 더 실행하는걸로 잡았음 결과 테스트하고 자료 많이 찾아봤는데.. 개인적인 생각으로 이런 방식은 안쓰는게 좋은 것 같음 .. 일단 비슷한 방식으로 재호출은 구현 가능했음 아래와 같이 인터셉터에서 api 한번 더 실행은 일단 가능한데 .. 인터셉터 전에 응답값은 가져올수 없는것 같다 응답값도 가져왔다면 원하는대로 구현이 가능했을것임 .. 찾으면 더 나은 방법을 찾을 수 있을거같긴한데... 이렇게 쓰는게 spring 구조상 정석처럼 쓰는게 아니어서 굳이 이방법을 고수하지는 않았음.... Web/스프링 2020. 7. 28. [mybatis] ibatis -> mybatis 트랜잭션 관리 우선 말할건, 트랜잭션관리가 정확한 정답이 없다. 내가 찾아본 결과로는.. 확실한 답이 있다면, 찾으면 댓글 바랍니다. 조건 ibatis ,spring 3.0 을 mybatis springboot로 변경 (spring버전은 그렇게 중요하지 않다. ) mybatis에서 트랜잭션 유지, 설정 ibatis에서 mybatis 로 문법이 조금 바뀐거같긴하지만, 생각보다 이게 까다로움. 별별곳에서 문제가 생김. 뭐 그건 하다보면 빡치니까 알테니 트랜잭션만 이야기하겠다. 과정 ibatis 는 1 2 3 4 5 6 7 try { sqlMapClient.startTransaction(); sqlMapClient.update("insertAccountViaParameterMap", account); sqlMapClient.. Web/스프링 2019. 11. 20. 스프링 <context:component-scan> 분석 http://thswave.github.io/spring/2015/02/02/spring-mvc-annotaion.html Web/스프링 2019. 5. 7. [ORM] ORM이란? JPA 설명 ORM을 이용하기 위해서는 Object modeling과 Relational modeling, 두 Modeling의 차이점을 이해해야만 한다. Object ModelingObject Modeling은 OOP를 기반으로 생성된 시스템을 표현한다.기본 개념Identity, State, Behavior, Encapsulation높은 레벨의 개념Type, Associations, Class, Inheritance Relational ModelingRelational Modeling은 서술어와 비슷한 truth statement로 정보를 표현한다.기본 개념Relation, Attribute, Domain, Tuple, Attribute Value( attribute value는 각각의 tuple에 포함된 attr.. Web/스프링 2019. 3. 26. Spring - 어디에서나 Spring 컨터이너 Bean 객체 얻어오기 https://bluexmas.tistory.com/497 출처: https://bluexmas.tistory.com/497 [파란크리스마스] https://crazygui.wordpress.com/2011/09/28/get-to-spring-applicationcontext-from-everywhere-the-clean-way/ https://www.logicbig.com/tutorials/spring-framework/spring-core/javaconfig-methods-inter-dependency.html Web/스프링 2019. 3. 15. [mybatis] selectmap 해결방안 못찾음.. 내 요구사항은 이거와 같다. https://okky.kr/article/258104 단순히 key, value 로 리턴 되었으면 좋겟는데 지금은 key={ k=key, v = value } 이런식으로 value에 값이 아닌 object 가 들어간다.. 이전엔 selectList를 써서 List 으로 처리했었는데, 단순 map 으로 받는 방식은 selectMap 을 써써 받는건데 .. key, map 으로는 안나온다. 찾아보니 ibatis 에서는 잘 됬던것으로 생각된다. .......................... ......... http://wfreud.tistory.com/181 1년 반전에도 찾았던 흔적이있다.. --------- 결론적으로 ... selectmap 써서 map 으로 받아온 후,.. Web/스프링 2018. 12. 6. log4j2.properties 프로퍼티 완료 예제. 트러블슈팅 내용 포함 아래는 내가 설정한 거의 최종 설정인데... https://logging.apache.org/log4j/2.x/manual/configuration.html ( 예제 인데.. ) 여기서도 설명이 부족한 경우가 많음. 영어도 부족한데 양도 드럽게 많아서 보기 힘듬....[ 추가 ] https://howtodoinjava.com/log4j2/log4j2-rollingfileappender-example/ 우선 가장 해결하기 짜증낫던 것은. appender.rolling.filePattern = target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-%i.log.gz 저대로 하면 초당 파일이 하나씩 생성됨. 아래처럼 바꾸면 괜찮은거같음. 몇칠 안지나봐서 모르겟음 (확인사항) 파일 크기 .. Web/스프링 2018. 11. 29. spring REST API Json 응답 에러 .No converter found for return value of type: class org.json.JSONObject java.lang.IllegalArgumentException: No converter found for return value of type: class org.json.JSONObject 이부분에 대한 문제 내가 잘못생각하고 있던 부분이 있음. rest api 응답 자료형에서 기존에는 회사에서 있는거 가져다 쓰고 내가 개발한거는 string 만 쓰고 있어서 햇갈렷음. 결과적으로 말하면 Jackson 은 Jackson does not know about org.json.JSONObject, You can use the putPOJO()jackson은 응답자료형에 JSONObject 이거를 못쓴다. ( 여태까지 찾은 결과까지는 안됬음. 될 수 도 있음 ) json 으로 리턴받아서 자료를 줄때도 json으.. Web/스프링 2018. 11. 27. 이전 1 2 3 4 ··· 6 다음