일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 1과목
- python
- 코틀린
- 알고리즘
- CJ UNIT
- SQL
- 백준
- 프로그래머스
- 회고
- 파이썬
- kotlin
- 정보처리산업기사
- 소프티어
- 스프링
- 자바
- 공부일지
- C++
- programmers
- MYSQL
- softeer
- SW봉사
- BFS
- 백준알고리즘
- 시나공
- 문제풀이
- 백준 알고리즘
- 코딩교육봉사
- 코딩봉사
- 데이터베이스
- Today
- Total
목록Application (145)
JIE0025

SGA는 System Global Area의 약자로 서버프로세스와 백그라운드프로세스가 공통으로 액세스하는 데이터와 제어구조를 캐싱하는 메모리공간이다. DB 버퍼 캐시 / 공유풀(라이브러리캐시/ 딕셔너리 캐시) / Redo Log Buffer 세개에 대해서 알아보자. 1. DB Buffer Cache 데이터 조회와 변경등 실제 작업이 일어나는 공간이다. 사용자가 조회/변경하려는 모든 데이터가 이곳에 존재한다. 여러 사용자는 동시에 I/O를 시도할 수 있다. 내부에 블록 상태를 3가지로 나누어 리스트를 통해 관리하고 있다고 한다. Pinned Buffer : 다른 사용자가 사용중Dirty Buffer : 현재 작업은 진행되지 않지만 다른 사용자가 내용 변경후 아직 데이터파일에 저장하지 않은 버..

✅ SQL 최적화 사용자가 SQL을 질의하면 옵티마이저(비용기반)는 그것을 가장 비용(cost)이 낮은 실행계획을 선택하여 프로시저로 만든다. DBMS에서 프로시저를 작성하고, 컴파일해 실행가능한 상태로 만드는것이 SQL 최적화이다. 1) SQL을 파싱한다. SQL 파서가 파싱을 진행한다. 파싱 트리를 생성한다 : SQL문을 이룽는 개별 구성요소를 분석해서 트리를 만든다. Syntax 체크 : 문법오류가 없는지 확인한다. Semantic 체크 : 의미상의 오류가 없는지 확인한다 (없는 테이블/컬럼 사용, 권한이 있는지 등) 2) SQL 최적화옵티마이저가 최적화를 맡는다 미리 수집한 시스템/통계정보를 바탕으로 실행경로를 생성하고 가장 효율적인 1개를 선택한다. 3) 로우소스 생성로우소스생성기가 담..

개요프로그램을 개발하다보면 IDE에 Debug / Release라는 것을 볼 수 있다. 디버그모드는 디버깅이 가능하고, 릴리즈 모드는 최종 배포용으로 빌드 할 때 사용한다는 것만 이해했었는데 이제는 왜 디버그모드와 릴리즈모드가 분리되었는지 디테일하게 이해하고 정리할 수 있게 되어 블로깅하게 되었다. 디버그모드 (Debug Mode) 실행파일에 디버깅 정보를 포함한다.실행파일 상태정보를 확인이 가능하다.디버깅 정보가 포함되어 있기 떄문에 속도가 릴리즈모드에 비하면 느리다. 브레이크포인트를 사용하여 한줄씩 디버깅할 수 있다. 읽다보면 함수의 콜스택도 함께 천천히 볼 수 있어서 좋다 기 작성된 코드를 분석할 때 어떤 데이터가 어떻게 움직이는지 확인할 수 있기 떄문에 효율적이다. 릴리즈모드 (Rel..

✅ jar파일Java Archive의 약자 자바 클래스, 메타데이터 및 리소스 를 하나의 파일에 모아 쉽게 배포하는 패키지 파일 형식 Java 애플리케이션의 "설치 프로그램"으로 생각 >> 컴파일된 자바 코드 (.class) 와 리소스가 압축 형식으로 포함되어있다. 목적독립 실행형 애플리케이션 자바 프로그램/ 라이브러리 배포할 때 >>> JRE만 갖고도 실행이 가능하다. jar파일의 구조 예 - META-INF/ - MANIFEST .MF (버전, 메인 클래스 등 의 메타데이터 포함 ) - com/ - example/ - MyApp .class (컴파일된 Java 코드 ) - resources/ - image .png (또는..

✅ DB 클러스터링이란? > 단일 데이터베이스를 연결하는 둘이상의 서버/인스턴스를 결합하는 프로세스 아래를 보면 쿼리를 수행하는 서버가 있고, 실제 저장공간인 Database가 있다. 서버를 둘 이상으로 늘려서 단일 Database에 연결하는것이다. ✅ 클러스터링을 하는 이유 만약 DB 서버가 2대가 된다면 어떻게 될까?많은 양의 쿼리문을 더 빠르게 응답할 수 있을것이다. 또한 한개의 서버가 이상이 생기더라도 다른 서버가 존재 하기 때문에 정상적인 서비스를 운영할 수 있다. 단점위 그림을 보면 두 서버가 둘다 Active하다. 이는 두개 서버가 동시에 같은 자원에 접근하려고 할수 있다는 의미가 된다. (병목현상)병목현상이 발생하면 더 많은 비용이 발생할 수 있다. >> Active ..

✅ 문제상황A모듈의 메뉴에서 C모듈의 팝업을 호출한다. C모듈 팝업에서 버튼한개를 클릭하면 공통쪽 팝업이 뜨는데... 여기에서 공통 팝업이 제대로 뜨지 않는 문제가 발생했다. ✅ 해결 과정코드 확인 결과, 공통 팝업을 띄우기 위해선 1. 메뉴인경우 해당 페이지의 정보를 저장한다. --> A모듈 메뉴1 에서 공통팝업 호출시 A의 정보저장 2. 해당 페이지 정보가 없는 경우 (ex 팝업) 그 부모의 정보를 가져와서 저장한다.--> A모듈에 메뉴1에서 A모듈 팝업1을 호출한 다음 공통팝업 호출시 팝업1의 부모인 메뉴1의 정보 저장 문제가 생겼던 부분은 이 경우는 A에서 C팝업을 호출했기 떄문에 부모의 정보를 제대로 가져오지 못하여 발생하는 것이었다. 크로스오리진을 해결하기 위해선 ..

상황1. 모듈A 에서 메뉴 하나를 개발했다.2. 단순조회를 하는데, 모듈A, 모듈B, 모듈C에서 쿼리 결과를 가져와 띄어주는 상황이다. 3. 모듈A에서 B, C로 인터페이스를 요청하여 조회할 내용을 가져온다. 4. 모듈 C에서의 응답에서 에러가 발생하였음 문제정의1. 인터페이스 요청 및 응답까지 1분이상 소요되었다.2. 모듈C의 로컬확인 결과, WAS에서 응답을 잘 돌려주는 것을 보았다. >> 자바/ 쿼리의 문제가 아님>> 대신 응답까지 33초 걸림 3. 인터페이스 중간관리 시스템에서 30초 이상 걸릴 경우호출한 클라이언트 쪽으로 TIME_OUT을 내고 있었다. 따라서 응답 속도를 30초 이내로 만들면 화면에 정상적으로 띄울 수 있다. * 기존쿼리 SELECT COUNT(*) AS CNTFROM (..

개요경영지원 시스템에는 직원들이 더욱 편하게 회사의 지원을 받을 수 있는 메뉴들이 존재한다. 최근 자격증 응시료를 지원받을수 있는 신청 승인 페이지를 개발해 추상적인 내용을 기록해보고자 한다. 자격증 지원금 신청 & 승인 유저플로우(userflow) 일반 사용자 1. 지원받을 자격증정보,응시료 등을 입력하여 정보를 저장한다. 2. 저장한 정보를 신청하면, 상태로 변한다. 이때 관리자에게 알림을 보낸다.3. 신청중인 데이터를 할 수 있다. 관리자1. 일반사용자가 지원금 신청하면, 관리자에게 알림이 온다. 2. 인 데이터를 또는 할 수 있다. 3. 된 데이터는 할 수 있다.4. 된 데이터에 대해 결의서 및 한다. - 다건에 대해선 차변 금액이 합쳐져서 생성된다. 5. 전표 등록이후 ..

. ✅ 개요 이전에 아래와 같은 상황이 발생했었는데... https://jie0025.tistory.com/618 한 트랜잭션에서 동일한 데이터를 조회하면? (MyBatis의 캐싱전략과 localCacheScope 설정하기)✅ 가정 학생이 존재한다. 학생은 학년별로 성적표를 출력할 수 있다. 학년당 2학기가 존재하고, 성적표 또한 학기별로 출력된다. 위의 이미지는 2학년 성적표를 조회하는 상황이다. 1학기, 2학jie0025.tistory.com 정리하자면 한 요청상황에서 (동일 트랜잭션) 파라미터까지 똑같은 쿼리를 할 경우MyBatis 는 내부 캐싱을 사용하고,이에 따라 쿼리와 쿼리사이에서 해당 엔티티의 값이 변경될 경우이후 쿼리 상황에서 바뀐 값으로 출력된다. 이 문제가 Local에서만..

✅ 가정 학생이 존재한다.학생은 학년별로 성적표를 출력할 수 있다.학년당 2학기가 존재하고, 성적표 또한 학기별로 출력된다. 위의 이미지는 2학년 성적표를 조회하는 상황이다. 1학기, 2학기 성적표를 둘다 체크하여 한번에 요청하면한번에 성적표 2개가 보인다. * 1학기 성적표 한개만 체크하면 성적표 1개만 보인다. ✅ 상황한번에 2학년 1학기, 2학기를 성적표를 조회하는 과정은 한 트랜잭션에서 일어난다. 💻 수도코드성적표 객체 생성출력해야하는 개수만큼 반복 학생을 조회한다. 학생의 개인정보가 존재한다면 복호화한다. 해당 학기에 무슨 과목을 들었는지 리스트 생성 Database에서 학생의 성적데이터를 가져오는..