리스트(232)
-
SourceTree Err (Logon failed, use ctrl+c to cancel basic credential prompt.) 에러 해결
소스트리와 github 연동 후 Push 하는 중에 "SourceTree Err (Logon failed, use ctrl+c to cancel basic credential prompt.)" 에러가 발생하였고 github에 Push가 안되는 현상이 발생하였다. 위 그림처럼 github 로그인 화면이 뜬후 ID,PW 입력을 해줘도 계속 동일한 오류가 발생하였다. 구글링해서 찾아보던중 해결방법을 찾게 되어서 공유하려고 한다. 해결방법 소스트리의 도구 > 옵션 > 인증에 가서 파란색 추가 버튼 클릭 후 호스팅 서비스 Github을 선택한다. 그리고 OAuth 토큰 새로고침 버튼 클릭 후 3rd-party-Authentication 절차를 거친 후 Push하면 정상 작동한다! (아래그림 참고) 참고자료 htt..
2022.08.20 -
트랜잭션 2편
✅ 트랜잭션 격리 수준에 대해서 알아보자 트랜잭션 격리수준(Isolation level) 트랜잭션 격리수준이란 동시에 여러 트랜잭션이 처리될 때, 트랜잭션끼리 얼마나 서로 고립되어 있는지를 나타내는 것이다. 쉽게 말하자면 특정 트랜잭션이 다른 트랜잭션에 변경한 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것이다. 트랜잭션 격리 수준은 크게 4가지로 구성되어 있다. READ UNCOMMITED(커밋되지 않은 읽기) READ COMMITTED(커밋된 읽기) REPEATABLE READ(반복 가능한 읽기) SERIALIZABLE(직렬화 가능) READ UNCOMMITED ->SERIALIZBLE 순으로 갈수록 고립(격리) 정도가 높아지며, 성능이 떨어집니다. 격리 수준이 낮을수록 동시성은 증가하지만 격리 ..
2022.08.05 -
트랜잭션 1편
✅ 트랜잭션에 대해서 알아보자 DB 트랜잭션 이란, 데이터베이스 상태를 변경시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다. 트랜잭션의 목적은 데이터베이스의 완전성 유지와 무결성을 유지하기 위해 사용된다. 하나의 트랜잭션에는 N개의 SQL(질의어)가 포함되어 있다. 하나의 트랜잭션은 Commit 되거나 혹은 Rollback이 되어야 한다. 트랜잭션의 특징 1.Atomicity(원자성) 보장 원자성은 수행하고 있는 트랜잭션에 의해 변경된 내역을 유지하면서, 이전에 Commit 된 상태를 임시 영역에 따로 저장함으로써 보장한다. 이전 Commit 된 데이터들이 저장되는 영역을 롤백 세그먼트라고 하며, 현재 수행하고 있는 트랜잭션에 의해 새롭게..
2022.07.26 -
Connection Pool
✅ 아래 내용들에 대해서 알아보자 - DB 커넥션 과정 - DBCP - Hikari DBCP - connection 최적화 애플리케이션이 DB에 접근하여 리소스를 사용하기 위해서는 DB에 연결을 해야 한다. DB에 연결하는 과정을 DB 커넥션 과정이라고 하는데 DB 커넥션 과정은 복잡한 과정을 거치게 된다.(그림 1 참고) DB 커넥션 과정 애플리케이션은 DB 드라이버를 통해 커넥션을 조회한다. DB 드라이버는 DB와 TCP/IP 커넥션을 연결한다. 이 과정에서 TCP 신뢰성 연결을 위한 3 Way handshake 과정이 발생하게 된다. DB 드라이버는 2번 과정 연결 후 ID, PW 등 기타 부가정보를 DB에 전달한다. DB는 부가정보를 통한 인증 절차 후, 내부에 DB 세션을 생성한다. DB는 커넥..
2022.07.24 -
Chap 02. TDD 시작
목표 : 먼저 TDD에 대한 개념과 프로세스를 이해해보자. TDD란 테스트 주도 개발(Test-Driven Development, TDD)은 매우 짧은 개발 사이클 반복하는 개발 방법 중의 하나이다. 미국의 S/W 개발자이자 익스트림 프로그래밍 창시자인 Kent Beck이라는 분이 창시한 개발 방법론이다. 먼저, 요구사항을 검증하는 테스트 케이스를 작성 후, 그 테스트 케이스를 통과할만큼 코드를 생성 후 마지막으로 리팩토링을 하는 방식이다. TDD 이전의 개발 방식 1. 기능에 대한 분석 및 설계 2. 기능 구현 3. 구현 코드에 대한 테스트 및 디버깅 TDD전의 개발방식은 한 번에 작성한 코드가 많을수록 테스트와 디버깅하는 시간에 대해 길어져서 비효율적인 시간낭비가 생기게 되었다. TDD 개발 방식 1..
2022.07.20 -
Chap 01. TDD 준비
목표 : 테스트에 대해서 이해하자 테스트란? 테스트는 어떤 동작을 실행했을 때, 기대했던 형태로 동작해서 결괏값이 나오는지, 원하는 동작을 연계해서 수행하는지 등의 확인하는 과정을 말합니다. 테스트를 해야 하는 이유 1. 개발 시간을 줄여준다 -> 테스트 코드를 통해 테스트를 진행 함으로써 동작에 대한 안정성을 보장하고, 문제점에 대해 빠르게 파악하고 대응할 수 있습니다. 2. 빠른 시간 내의 코드 동작 방식과 결과를 확인할 수 있다 3. 리팩토링을 안심하고 할 수 있다 그 외 테스트를 해야 하는 이유는 무궁무진하다.. 좋은 테스트를 하기 위한 5가지 방법(FIRST) 1. FAST : 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다 2. Independent : 각각의 테스트는 독립적이며 서로 의존..
2022.07.20