spring boot 2 책을 보면 WebMvcTest DataJpaTest, JsonTest, RestClientTest  등을 설명하는데..

 

이것만 있는 것이 아니다. 

 

여러 개가 더 있다.

 

https://docs.spring.io/spring-boot/docs/current/reference/html/test-auto-configuration.html

 

Appendix D. Test auto-configuration annotations

Appendix D. Test auto-configuration annotations The following table lists the various @…Test annotations that can be used to test slices of your application and the auto-configuration that they import by default: Test sliceImported auto-configuration@DataJ

docs.spring.io

 

@DataJdbcTest

@DataLdapTest

@DataMongoTest

@DataNeo4jTest

@WebFluxTest

@DataRedisTest

@JdbcTest

@JooqTest 등을 포함한다.

 

 

자세한 내용은 다음을 확인한다. 

 

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

 

46. Testing

A Spring Boot application is a Spring ApplicationContext, so nothing very special has to be done to test it beyond what you would normally do with a vanilla Spring context. By default, @SpringBootTest will not start a server. You can use the webEnvironment

docs.spring.io

 

Posted by 김용환 '김용환'

 

소프트 스킬을 읽고 괜찮은 부분을 발췌한다.

 

 

<발췌>

 

1. 새로운 습관 만들기

 

존 레식 (John Resig) 블로그에서는 '코드를 매일 작성하라'라는 제목의 글이 있다.

 

매일 최소 30분씩 코드를 작성하는 습관을 들이기 전에는 부가적으로 진행하는 프로젝트에 아무런 진척이 없었다. 그 게 습관이 되니 생산성에 큰 향상이 있었다고 한다. 

 

https://johnresig.com/blog/write-code-every-day/

 

John Resig - Write Code Every Day

Last fall, work on my coding side projects came to a head: I wasn’t making adequate progress and I couldn’t find a way to get more done without sacrificing my ability to do effective work at Khan Academy. There were a few major problems with how I was work

johnresig.com

 

새로운 습관을 만드는 것은 새로운 반복 행위를 만드는 것과 비슷하다. 긍적적인 습관이 많을 수록 목표로 가는 길은 더 쉬워질 것이다.

 

다음에는 새로운 습관을 위한 신호를 찾아야 한다. 

 

소프트 스킬의 저자는 매일 저녁 30분씩 기술 서적을 읽는 습관을 가졌고 매일 30분씩 걷는 새로운 습관을 개발하기 로 했다.

 

 

 

 

 

 

2. 뽀모도로 기법

 

학자인 푸앵카레는 다음과 같이 말했다.

 

규칙적으로 오전 10시부터 12시까지, 오후 5시부터 7시까지만 일했다.그는 더 일해봐야 얻는 게 거의 없다고 생각했다.

 

 

 

 

<느낌>

 

내 생각과 많이 비슷한 내용이 적혀 있었다.

 

개발 + 안정적인 재정 독립!!!

Posted by 김용환 '김용환'

 

https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf

불러오는 중입니다...

 

 

Posted by 김용환 '김용환'

최근에 아는 DBA로부터 들었던 쇼킹한 줄임말


(약자)

최한시 , 최번시



최한시 - busy hour, peak hour, peak busy hour (트래픽이 가장 많은 시간대)

최번시 - idle hour, off-peak hour (트래픽이 가장 적은 시간대)


정보통신기술용어 뿐 아니라 특허, 정책연구원에서 사용하는 단어였다.



한가한 시간, 새벽 작업이라고  했지.


지금까지 개발하면서 한번도 써보지 않은 단어였다..

Posted by 김용환 '김용환'




오늘 트위터 CTO와의 간담회를 마치고 바깥에 나오는데..


점심식사를 같이 하면 좋겠다는 인사팀 수장님이 얘기가 나왔다.





잠깐동안 망설였다.




아.. 내가 트위터 CTO와 밥을!!!   동료와의 점심 식사 약속을 어떻게 하지?


동료와는 다음 주에도 식사할 수 있긴 한데... 어떻게 하지?


으와..










인사팀 수장에게 정중하게 거절하고 동료를 만났다.


(쏘리 트위터 CTO~~)



저녁에 돌아보니.. 나는 미쳤나 보다... 


그런 기회를 놓치다니.. 




그래도 내 동료와 점심 시간 약속을 지켜서.. 그게 참 좋았다. 





Posted by 김용환 '김용환'



jenkins pipeline에서 체크아웃할 때


무조건 새로운 코드로 받고 싶다면 Additional Behaviours의 Clean befoe checkout을 추가한다. 

Posted by 김용환 '김용환'

sentry의 경우 에러 로그를 한 번에 받다보니 조금 이슈가 생길 수 있다. 


request body 가 1메가를 초과하는 경우 nginx 오류 발생하는 경우가 있다.


    * nginx : 기본설정(1M) 로 일반적인 경우에는 문제가 없으나 예외적으로 필요한 경우가 있어서 설정을 변경할 수 있다.

    => client_max_body_size 5M;



     * PG의 DB 변경
    => send_buffer를 128K에서 5M로 변경, max_connection을 100에서 500으로 변경한다.


Posted by 김용환 '김용환'

# confluent kafka connector가 지원하는 connector 플러그인 (5.1.2 기준)

Kafka Connect ActiveMQ Connector

Kafka FileStream Connectors

Kafka Connect HDFS

Kafka Connect JDBC Connector

Confluent Kafka Replicator

Kafka Connect S3

Kafka Connect Elasticsearch Connector

Kafka Connect IBM MQ Connector

Kafka Connect JMS Connector (edited) 

# debezium이 지원하는 db


sqlserver,

postgres

mysql

mongodb (edited) 

Posted by 김용환 '김용환'

debezium 일반적인 설정은 다음과 같다.


{

 “name”: “kc_debezium_connector_shopping_orders”,

 “config”: {

   “connector.class”: “io.debezium.connector.mysql.MySqlConnector”,

   “tasks.max”: “1”,

   “database.hostname”: “mysql”,

   “database.port”: “3306”,

   “database.user”: “debezium”,

   “database.password”: “비밀번호”,

   “database.server.id”: “18405”,

   “database.server.name”: “shopping.alpha-google.com”,

   “database.whitelist”: “shopping”,

   “table.whitelist”: “shopping.demo_orders”,

   “database.history.kafka.bootstrap.servers”: “kafka:29092”,

   “database.history.kafka.topic”: “schema_changes_shopping_orders”

 }

}





<기본설정>


처음에 debezium 사용할 때


kafka connector 에 debezium을 사용할 때

serverName(database.server.name).databaseName.tableName이 합쳐진 카프카 토픽에 DML 정보가 저장된다. (insert, update, delete)


shopping.shopping.demo_orders



참고

https://debezium.io/docs/connectors/mysql/#topic-names




스키마와 관련된 정보는 아래 토픽에 저장된다. (trucate, create table, alter table ..)


 “database.history.kafka.topic”: “schema_changes_shopping_orders”






또한 DML 정보가 저장되는 topic이름은 바꿀 수 있다 .


아래는 table 이름으로 topic 이름을 줄 수 있다.


   “transforms”: “route”,

   “transforms.route.type”: “org.apache.kafka.connect.transforms.RegexRouter”,

   “transforms.route.regex”: “([^.]+)\\.([^.]+)\\.([^.]+)“,

   “transforms.route.replacement”: “$3"



Posted by 김용환 '김용환'



ebay에서 ci/cd로 mesos/jenkins 를 사용했었는데 최근에 drone으로 옮겨 탔다고 한다.



2014년

https://www.ebayinc.com/stories/blogs/tech/delivering-ebays-ci-solution-with-apache-mesos-part-i/

https://www.ebayinc.com/stories/blogs/tech/delivering-ebays-ci-solution-with-apache-mesos-part-ii/



2016년

https://www.ebayinc.com/stories/blogs/tech/scalable-and-nimble-continuous-integration-for-hadoop-projects/


2018년 6월 ebay에서 kubernetes/drone으로 이전했다는 발표.

https://blog.drone.io/interview-with-punit-agrawal-devops-at-ebay/


droneUI

https://hackernoon.com/build-your-own-ci-cd-pipeline-with-drone-e43d7190989b


참고

ebay 아키텍처

https://rnd.ebay.co.il/cwsd.php?Z3AuPTQ0Pg/NTQ/R0w-TEAocWx6bChfZmB-bmB2f3VmbXN2PGRhdA.pdf



Posted by 김용환 '김용환'