본문 바로가기

분류 전체보기

(62)
jenkins github https://brenden.tistory.com/90
Spring Boot 프로젝트 시작(IntelliJ IDEA Community Edition https://start.spring.io/ generate하면 만들어짐
직열성 위반 dirty Read 더티리드 Read Committed Non-Repeatable Read 한 트랜잭션 내에서 같은 쿼리를 두번 수행할때, 다른 트랜잭션이 값을 수정함으로 해서 두 쿼리가 서로 다르게 나타나는 현상 - select ~ for update를 해서 처리하고자 하는 내용에 lock을 걸어서 이를 해결 Repeatable Read read 후 인출하려는데 돈이없음 Phantom Read Serializable Read 로해결 insert update 금지 Phantom Conflict 서로 충돌하지 않는 두 개 이상의 트랜잭션이 삽입되려고 하는 가상의 튜플에 의해 충돌이 발생되는 현상 트랜잭션의 일관성이 보장되지 않는 현상 t1 ,t2 실행결과와 t2,t1실행결과가 다르다 그게 팬텀 충돌 tab..
우분투 ssh apt-get update openssh 설치 apt-get install openssh-server ssh 설치 apt-get install ssh 방화벽 ufw enable ufw allow 22 ufw reload 서비스 시작 service ssh start 확인 service ssh status ps -ef | grep sshd netstat -ntlp | grep sshd
동시성제어(트랜잭션) - 다수의 트랜잭션이 경쟁시 발생할 수 있는 문제 - Dirty Read : 아직 트랜잭션이 완료되지 않은 상황에서 데이터에 접근을 허용할 경우 발생할 수 있는 데이터 불일치 - Non-Repeatable Read : 한 트랜잭션에서 같은 쿼리를 두번 실행했을 때 발생할 수 있는 데이터 불일치 - Phantom Read : 한 트랜잭션에서 일정 범위의 레코드를 두번 이상 읽을 때 발생하는 데이터 불일치 - 트랜잭션 격리 수준 (isolation level) - DEFAULT : 기본 격리 수준 (DB isolation level 따름) - READ_UNCOMMITTED (level 0) : 커밋되지 않은 데이터에 대한 읽기 허용 (Dirty Read 발생 할 수 있음) - READ_COMMITTED (l..
GC(Garbage Collection) Garbage Collection C와 C++을 공부 해봤던 사람이라면 객체나 메모리를 할당 할때 특정 명령어(malloc, new)를 사용하는 것을 알고 있을 것 입니다. 그리고 메모리를 해제하는 명령어(free, delete) 사실을 알고 있을 것 입니다. 그러나 자바에서는 개발자가 객체를 생성하는 것은 가능하지만 메모리에 할당된 객체를 삭제하는 것은 허락하지 않습니다. 자바가 추구하는 것들 중 하나가 메모리 관리의 편리성이기 때문이라고 알고 있습니다. Stop-The-World 자바는 멀티 스레드 환경이고 Garbage Collection 또한 특정 스레드에서 동작 하게 됩니다. Garbage Collection이 실행 될 때 애플리케이션의 모든 스레드는 정지하고 Garbage Collection ..
JDBC와 DBCP DBCP란 DBCP의 개념 DBCP란 DataBase Connection Pool의 약자로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 합니다. 일반적으로 JDBC를 이용한다면 아래와 같은 순서로 DB에 접속합니다. DB 접속을 위한 JDBC 드라이버 로드 getConnection 메소드로부터 Connection 객체를 얻음 쿼리 수행을 위한 PreparedStatement 객체 생성 executeQuery를 실행해서 결과를 받아옴 처리가 완료되면 사용된 리소스들을 close하여 반환 여기서 비효율적인 부분은 1번과 2번 입니다. DB 연결 시 마다 Driver를 로드하고 커넥션 객체를 얻는 작업을 반복하죠. 이 부분을 효율적으로 처리하도록 바꾸는 것이 DBCP의 역할 입니다. DBCP를 사용하게 ..
docker 명령어 docker run hello-world create -> start stop - 정상종료 -> grace period kill - 걍종료 docker rm pid docker system prune(안쓰는거다지움) 실행 docker exec -it [pid] redis-cli sh ctr+d로 나오기 도커 실행 docker run -d -p 5000:8080 -v /usr/src/app/node_modules -v %cd%:/usr/src/app sujins0621/nodejs docker compose docker -compose up docker-compose -d -build docker build --tag sjoh:0.1 . docker run -d -p 8081:8081 sjoh:0.1