느린 것을 걱정하지 말고, 멈춰서는 것을 걱정하라
article thumbnail
Transaction의 Isolation Level
IT/MySQL 2021. 8. 7. 14:55

ACID, 거의 대부분의 개발자들이 면접을 받기전에 숙지하고 들어가는 키워드가 아닐까 싶다. ACID는 각각 원자성(Atomic), 일관성(Consistency), 고립성(Isolation), 지속성(Durablity)의 함축된 단어이다. 이 각각의 특징은 다음을 의미한다. 원자성(Atomic) 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다. 즉, 하나의 트랜잭션에 속한 작업들은 전부 수행되거나 전부 수행되지 않아야 한다. 일관성(Consistency) 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 유지하는 것을 의미한다. 예를들면, 모든 계좌는 잔고가 있어야하며 이를 어길경우 트랜잭션은 중지되어야 한다. 고립성(Isolation) 트랜..

article thumbnail
H2 에러 (Database "/Users/juhyeontae/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments)
IT/JPA 2021. 8. 3. 11:41

JPA테스트를 위한 목적으로 h2를 설치하고 h2를 실행하려고 하니 아래처럼 뭔가 에러메시지와함께, h2로그인이 안되는 현상이 있었다.. 뭔지.. ? Database "/Users/juhyeontae/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (도움말) 아래쪽에 보니 붉은 에러가 위와같은 에러가 발생하고 있따.. 해결법) - 로그인 화면의 jdbc url에 아래의 값(각 컴퓨터 환경마다 다를 수 잇다. jdbc:h2:뒤에 Database not found라고 나온 경로를 넣어주면 되는것으로 보인다.)을 넣..

article thumbnail
Docker quickstart Terminal 사용시 외부접근 문제
IT/docker 2021. 6. 30. 09:28

현재 내가 사용하는 Mac의 버전이 낮아서 Docker for Mac을 사용하지 못하고 Docker quickstart Terminal을 사용하고 있따. 그런데, Docker for Mac을 사용할때의 경우에는 컨테이너를 실행시키고 해당 컨테이너에 localhost등으로 접근하면 바로 접근이 되었었는데, Docker quickstart Terminal에서는 접근하지 못하는 문제가 있다. Docker Quickstart Terminal의 경우 PC에 리눅스 가상머신을 설치한 후 도커를 설치하므로 가상 네트워크가 두 개가 생성된다. mysql 컨테이너 실행하기 docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=[비밀번호] -d -p 3306:3306 mys..

article thumbnail
MySQL [Public Key Retrieval is not allowed ] 에러나면서 접속 안될떄
IT/MariaDB 2021. 6. 19. 13:26

음,, 뭔가 개발환경과 운영환경을 나누고 싶어서, docker를 이용하여 개발환경에 mysql을 띄우려고 다음과 같은 명령어를 수행하였다. docker run --name mysql-container -e MYSQL\_ROOT\_PASSWORD=zero1234 -d -p 3306:3306 mysql:latest 그리고 dbeaver 상에서 접속하려고 하는데, 아래와 같은 에러가 발생한다.. Public Key Retrieval is not allowed 해결법은 Driver properties에서 allowPublicKeyRetrieval 값을 true 로 변경해주면 된다.

testContainer를 사용하여 SpringBoot, JPA, MySQL환경 테스트 진행
IT/TDD 2021. 6. 12. 22:25

최근 나의 버려진 프로젝트인 헬창닷컴..(http://www.helchang.com)) 이 프로젝트는 내가 위메프에 입사하게 해준? 고마운 프로젝트인데, 회사 입사 이후에는 매우 바쁜관계 및 GCP의 과금문제로 버려둔 상태로 있던 프로젝트이다. 이 프로젝트를 살리고, 최근 배우고있는 기술들을 적용하자는 의미에서 이 프로젝트를 다시 살려보고자 최근에 노력하고 있다. 그 첫 단추로 라즈베리 파이에 Jenkins를 설치하여 이 프로젝트에 CD(Continuous Deploy)를 구성하였다. https://honeyinfo7.tistory.com/304 그리고 이제, 이 프로젝트를 살리고자 Maven으로 설정되어있던 설정을 Gradle로 Converting하고 소스코드를 하나하나 복기(?)하는 과정을 거치고 있..

tomcat 배포시 spring profile 설정 방법
IT/Jenkins 2021. 6. 9. 23:49

tomcat의 bin/catalina.sh 에서 JAVA_OPTS를 설정하는 부분이 있는데 이곳에다가 다음과 같이 설정을 추가한다. -Dspring.profiles.active=[profile명]

article thumbnail
jenkins로 gradle프로젝트 cafe24톰캣 서버에 war배포하기
IT/Jenkins 2021. 6. 9. 09:47

다음 그림과 같이 내가 특정 branch를 push했을때 github에서 이를 인지하여 jenkins로 webhook을 날리고 tomcat서버로 배포하는 과정을 자동화 해봤다. 일단, 새로운 아이템 > Freestyle project를 클릭한다. Github Project를 체크하고 Github 프로젝트의 주소를 입력한다. 소스코드 관리에서는 Git을 체크하고 Repository url과 아이디/비밀번호 정보를 담은 Credentials를 입력한다. 빌드유발에서는 GitHub hook trigger for GITScm polling을 클릭한다. 웹훅 설정은 Github 저장소에 들어가서 아래와 같이 수행한다. Settings > Webhooks > Add webhook을 클릭한다. Payload URL에..

article thumbnail
[Jenkins 에러일지] jenkins Couldn't find any revision to build. Verify the repository and branch configuration for this job.
IT/Jenkins 2021. 6. 8. 22:40

다음과 같은 에러가 발생하였다. jenkins Couldn't find any revision to build. Verify the repository and branch configuration for this job. 무슨 일이지... 로그를 확인해보니 branch를 찾을수 없다는 이야기인것 같다. 원인은,, 최근 github브랜치의 경우 master가 아닌 main이 주 브랜치로 쓰이는 것 같다.. 하핳.. */master -> */main으로 바꿔주니 에러는 해결되었다.

article thumbnail
Elasticsearch 단위테스트를 위한 testContainer사용하기
IT/ElasticSearch 2021. 6. 1. 17:58

최근 우리팀의 코드는 모두 TDD로 작성되고 있다. TDD.. 뭔가 말로는 쉬워보였지만 막상 짜려니 손이 가지 않는다. 특히 Elasticsearch같은 다른 어플리케이션에 종속된 코드를 짤 때에는 특히 더 그렇다. Kafka테스트의 경우 EmbeddedKafka를 이용하여 테스트를 진행하였는데, ES도 EmbeddedElasticsearch를 제공하지 않을까 하는 마음에 설레하며 찾아보았지만, 다음과 같은 답변을 볼 수 있었다.(https://discuss.elastic.co/t/in-memory-testing-with-resthighlevelclient/106196/5) 요약하자면, EmbeddedElasticsearch를 이전에는 제공하였지만, 이제 이 기능이 Deprecated되었고, 다른 것을 ..

Kafka특정 토픽이 비었는지 확인하는 코드 작성
IT/kafka 2021. 5. 30. 20:38

회사에서 프로젝트를 하는 도중 카프카의 특정 토픽이 비어있는지 확인하는 메서드를 찾아봤는데, 팀원분께서 작성한 코드를 활용하니 특정 토픽이 비어있는지 확인할 수 있었다. AdminClient 클래스를 이용하면 작동중인 Consumer나 Producer의 작업에 영향을 미치지 않고 해당 정보를 얻을 수 있는데, 이에대해 코드를 좀 더 다듬어 포스팅 한다. package com.example; import org.apache.kafka.clients.admin.*; import org.apache.kafka.clients.consumer.OffsetAndMetadata; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.ka..