일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- jetbrains
- wildfly
- JPA
- database
- VSCode
- Git
- nginx
- docker
- useEffect
- JavaScript
- Windows
- MySQL
- BPMN
- IntelliJ
- springboot
- Kubernetes
- intellijIDEA
- react
- kubectl
- NCP
- LOG4J
- Spring
- nodejs
- gradle
- dbeaver
- log4j2
- tibero
- mybatis
- gson
- Today
- Total
목록분류 전체보기 (247)
두 손끝의 창조자
Task는 프로세스 흐름 상에서 더 이상 상세 레벨로 내려갈 수 없는 가장 작은 단위이다. 일반적으로 사람이나 애플리케이션이 실제로 행동하는 것을 표현하는 단위이기도 하다. Taks의 Maker Task는 Loop, Multi-Instance, Compensation 3가지 타입 마커를 넣어서 더 상세하게 표현 할 수 있다. Task의 Type Service Task 서비스에 일종이고 웹 서비스나 자동화된 애플리케이션일 수 있다. Send Task Message를 외부 참여자에게 보내기 위한 Task 이다. 메시지를 전송하면 해당 Task는 종료된다. Receive Task 외부 참여자가 보내는 Message를 수신하기 위해 기다리는 Task이다. 메시지를 수신하면 Taks는 종료된다. User Task..
HttpSecurityBeanDefinitionParser https://stackoverflow.com/questions/10140515/spring-security-where-can-i-find-the-list-of-all-security-filters-registered-w
요청이 설정한 것과 매치가 되면 로그인을 시도함
들어온 요청에 대해서 인증에 실패하거나 권한이 없으면 수행되는 AuthenticationEntryPoint를 커스터 마이징 했을 때 CORS는 어떻게 되는건지 확인해봤다. Spring Security 설정에 모든 /api/ 요청에 대해 거절하도록 했다. 그러면 /api/의 모든 요청은 거절되고 restAuthenticationEntryPoint 에 정의된 절차대로 수행한다. public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { String noAuthMessage = "{\n" +..
소스코드로 볼 때(compile time)와 실행할 때(run time)의 의존관계가 서로 달라서 그럴 수도 있다. 현재 의존관계에서 중복되거나 버전이 안 맞거나 하는 것을 찾아볼 필요가 있다. setReadOnly not defined in JpaTransactionObject in JpaTransactionManager · Issue #24422 · spring-projects/spring-framework In spring-orm-8.2.3.RELEASE the problem described in Ticket # 23943 is still present. At line 405 txObject.setReadOnly(definition.isReadOnly()); txObject is of type J..
테스트 돌리는데 예외 발생 java.lang.IllegalStateException: Failed to load ApplicationContext Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.spr..
ES6(ECMA2015)에서 처음 소개된 import, export, const 같은 기능들은 ES6을 지원하지 않는 브라우저에서는 실행되지 않는다. ES6 문법으로 만들어진 소스 코드를 ES5 등 다른 형태로 변환을 시켜주는 트랜스 파일러 중에 한 아이가 Babel이다. import, export는 require, module.exports로 변환이 되는데 이 둘은 또 브라우저가 해석하지 못한다. 그래서 모듈을 가져오는 것들을 한 파일로 만들어서 require 같은 키워드를 사용하지 않아도 되도록 한 파일로 묶어줄 필요가 있다. 그럴 때 쓰는 것이 번들러라고 하고 번들러 중에는 webpack, rollup 등이 있다. ES6에서 ES5로 전환할 수 없는 기능은 변환하지 않고 그대로 놔두는데 이게 구형 ..
Formatter를 Prettier 사용하고 있다는 전제하에 settings.json 파일 열기 VS Code에서 cmd + shift + p 를 눌러서 커맨드 창을 연뒤 open settings(json)를 선택해서 settings.json 파일을 연다. 설정추가 아래 설정을 추가한다. "vetur.format.defaultFormatterOptions": { "prettier": { "singleQuote": true } } 세미콜론 자동 추가도 끄자 "vetur.format.defaultFormatterOptions": { "prettier": { "singleQuote": true, "semi": false } }
1. 프로젝트 생성 vue-cli 3.X vue create '프로젝트 명' vue-cli 2.X vue init webpack '프로젝트 명' 2. 프로젝트 구조 vue-cli 3.X vue-cli 2.X
gradle의 install task는 artifact를 로컬 캐시에 저장한다. install task를 사용하기 위해서는 plugin에 'maven' 을 추가하면 된다. apply plugin: 'maven' 로컬 캐시를 저장소처럼 사용하면 여러 프로젝트를 동시에 개발할 때 유용하게 쓸 수 있다. 사용하려면 repotitories에 'mavenLocal()' 을 추가한다. repositories { mavenLocal() mavenCentral() }
Start Event 트리거 마커 설명 None 정의된 트리거가 없음 Message 메시지가 참가자로부터 도착하여 프로세스를 시작. 메시지 플로우로 연결하면 어느 참여자가 메시지를 보냈는지 표시할 수 있음 Timer 프로세스 시작을 트리거하는 특정 시간 날짜 또는 특정주기 (예 : 매주 월요일 오전 9시)를 설정할 수 있음 Conditional 조건이 만족되면 트리거됨. 이벤트에 대한 조건식은 반드시 이벤트가 다시 트리거되기 전에 false가되어야함. "조건부 시작 이벤트"의 "조건식"은 프로세스 인스턴스가 아직 작성되지 않았기 때문에 프로세스의 데이터 컨텍스트 또는 인스턴스 속성을 참조해서는 안됨. 대신 환경의 정적 프로세스 속성 및 엔티티 상태를 참조 할 수 있음 Signal 다른 프로세스에서 브로드..
이벤트 유형에 따라 Publication, Direct resolution, Propagation, Cancellations, Compensations과 같이 트리거를 이벤트 잡기에 전달하는 다양한 전략이 있습니다. 공개된 이벤트는 대화로 그룹화되고, 여러 대화에 참여할 수 있습니다. 메시지는 트리거이며, 게시된 풀 외부에서 생성됩니다. 일반적으로 다른 풀의 다른 프로세스 간 B2B 통신을 설명합니다. 메시지가 특정 프로세스 인스턴스에 도달해야 하는 경우 상관관계는 특정 인스턴스를 식별하는 데 사용됩니다. 신호는 게시된 풀에서 생성된 트리거입니다. 일반적으로 프로세스 내, 프로세스 간, 풀 및 프로세스 다이어그램 간 브로드 캐스트 통신에 사용됩니다. 타이머 및 조건부 트리거는 암시 적으로 발생합니다. 이..
Event는 처음, 중간, 끝이 있다 Event는 Process의 어느 위치에서 사용하느냐에 따라서 시작(Start), 중간(Intermediate), 종료(End) 3가지로 나눌 수 있다. Start Process 나 Choreography 의 시작을 표시 Intermediate Start와 End Event 사이에 존재한다. Process나 Choreography 의 흐름에 영향을 주지만 이 이벤트가 시작이나 프로세스의 종료를 의미하지는 않는다. End Process 나 Choreography 의 종료를 표시 Event 도 종류가 있다 시작과 중간 이벤트는 이 이벤트가 발생한 원인(Trigger)을 정의할 수 있다. 예를 들어 메시지를 수신했거나, 타이머가 동작했거나 하면 이 시작 또는 중간 이벤트가..
BPMN Element Flow Objects 비즈니스 프로세스의 동작을 정의하는 메인 오브젝트 Event Activity Gateway Data Data Object Data Input Data Output Data Store Connecting Object Sequence Flows Message Flows Associations Data Associations Swimlane Pool Lane Artifacts 프로세스에 대한 추가적인 정보를 제공하기 위해 사용 Group Text annotation BPMN Element Notation Element 기호 설명 Event Process, Choreography 에서 무언가 "발생하는 것"을 표현할 때 사용한다. 즉, 원인과 결과를 표현한다. 원 ..
비즈니스 프로세스 모델링은 광범위한 정보를 다양한 대상에게 전달하는 데 사용한다. BPMN은 다양한 유형의 모델링을 포괄하도록 설계되었으며 엔드 투 엔드 비즈니스 프로세스를 만들 수 있다. 엔드-투-엔드 BPMN 모델에는 세 가지 하위 모델이 있다. Process(Orchestration) 비실행 내부 비즈니스 프로세스 실행 내부 비즈니스 프로세스 공개 프로세스 Choreography Collaboration Process 내부 비즈니스 프로세스 조직 내부 프로세스라고 하고 일반적으로 워크플로우 또는 BPM 프로세스라고 한다. 내부 프로세스에는 실행 가능한 것과 불가한 것이 있다. 비실행은 문서화하기 위한 용도이기 때문에 조건식이 실행에 필요한 정보는 일반적으로 포함하지 않는다. 내부 프로세스를 Swim..
한 Activity가 분기 조건 없는 Sequence Flow(이하 S.F)를 가지고 있을 때 어떻게 동작할까? Activity가 완료될 때 모든 S.F로 토큰을 전달한다. 즉 병렬로 동작한다. 이를 게이트웨이 요소로 표현하면 아래와 같다. 토큰은 프로세스의 요소들과 S.F를 통과하는 이론적인 개념이다. 게이트웨이는 게이트웨이가 토큰을 평가해서 명시적으로 어떤 S.F로 가야 하는지 정하지만, 이 경우는 모든 S.F를 평가하고 True에 해당하는 모든 S.F로 토큰을 통과시킨다. 만약 True 인 S.F가 없다면 디폴트 S.F로 통과시킨다. 원문 The nature and behavior of Sequence Flows is described in “Sequence Flow” on page 97. But ..
단일 사용자만 애플리케이션에 로그인 할 수 있는 제약사항을 두려면 xml.xml에 리스너를 추가하고 org.springframework.security.web.session.HttpSessionEventPublisher 스프링 시큐리티 설정에 최대 세션수를 지정합니다. 이렇게하면 사용자가 여러번 로그인 할 수 없습니다. 두 번째 로그인으로 첫 번째 로그인이 무효화됩니다. 만약 두 번째 로그인을 막으려면 error-if-maximum-exceeded 속성을 지정합니다. "rejected"은 form-login을 사용하는 경우 사용자가 authentication-failure-url 로 지정한 인증 실패 URL로 리다이렉션 됩니다. "remember-me"와 같은 다른 비 대화식 메커니즘을 통해 두 번째 인..
LDAP (Lightweight Directory Access Protocol) 공용 인터넷이든 회사 인트라넷이든 관계없이 누구나 네트워크에서 파일, 장치와 같은 조직, 개인 및 기타 리소스를 찾을 수 있도록하는 디렉토리 서비스 프로토콜입니다. TCP / IP 스택 위의 계층에서 실행됩니다. LDAP은 인터넷 디렉토리에 연결, 검색 및 수정하는데 사용되는 메커니즘을 제공합니다. LDAP 디렉토리 서비스는 클라이언트-서버 모델을 기반으로합니다. LDAP의 기능은 기존 디렉토리에 액세스 할 수있게하는 것입니다. LDAP의 데이터 모델 (데이터 및 네임 스페이스)은 X.500 OSI 디렉토리 서비스의 데이터 모델과 유사하지만 자원 요구 사항은 더 낮습니다. 연관된 LDAP API는 인터넷 디렉토리 서비스 응용..
일반적인 웹 애플리케이션에 접속해서 인증을 받는 절차를 한번 상상해 보자. 자원요청 : home 페이지에 접속을 해서 열어보고 싶은 링크를 클릭한다. 요청자원인식 : 링크를 클릭하면 요청이 서버로가고, 서버는 사용자가 요청한 자원이 보호된 자원이라고 인식한다. 요청자원 제공 불가 알림 : 사용자가 인증되지 않은 상태라면, 서버는 사용자에게 인증, 즉 로그인을 하라고 알려준다. 이때 로그인 페이지로 이동될 수도 있고 아니면 그냥 에러 페이지를 띄울수 있다. 인증 인터페이스 : 인증 메커니즘에 따라서 ID와 패스워드를 입력하는 폼이 뜰수고 있고, 브라우저가 BASIC 인증 다이얼로그 박스나, 쿠키나, X.509 인증서 등을 뒤져서 신상을 파악한다. 인증요청 : 브라우저는 입력된 ID, 패스워드를 서버로 보내..
핵심 Interface PlatformTransactionManager getTransaction() commit() rollback() TransactionDefinition 트랜잭션 4가지 속성 구현체 DataSourceTransactionManager TransactionAPI를 이용해서 관리 트랜잭션을 적용할 datasource가 빈으로 등록되어 있어야 함 JDBC과 SqlMap으로 만든 DAO에 적용가능함 트랜잭션을 적용할 DAO가 사용하는 것과 동일한 datasource를 빈으로 제공해야 함 Datasource를 getConnection()이 호출될때마다 매번 새로운 Connection을 돌려줘야 함 ThreadLocal 등을 이용해 트랜잭션을 저장해두고 돌려주는 특별한 기능을 가진 DataS..