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

개요프로그램을 개발하다보면 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에서 학생의 성적데이터를 가져오는..

✅ Office Reservation SystemView All Employee Work Status APISeat Reservation APICancel Seat Reservation API ✅ Architecture LanguageKotlinServerSpringBoot **2.7.17Gradle - KotlinDBMySQLSpring Data JPA (Hibernate)QueryDslDocumentSwagger 3.0.0 TestingMockK (Mockiing Library)IntelliJ (Test Coverage) ✅ Detailed Requirements Definition There are a total of 100 seats available (1~100). Each employee ca..

✅ 선행 개념 먼저 비관적 락이 무엇인지에 대한 개념은 아래 글에 적어놓았다. https://jie0025.tistory.com/603 비관적 락은 무엇이고 왜/언제 사용할까? ✅ 비관적 락 ? DB관리에서 사용하는 기술 중 하나이다. 충돌이 발생할 것 같으니 조취를 취하자. 간단하게 설명하면 어떤 이용자 A 가 데이터를 Read/Write할 때, 미리 락(Lock)을 걸어서 다른 사용자 jie0025.tistory.com ✅ 동시에 API 요청 넣어보기 락을 사용하지 않았을때 발생하는 문제를 직접 눈으로 확인해보자. 동시 요청을 보내는 가장 간단한 방법이 있다. ⏺ curl 커맨드 ? CLI를 이용해 API 데이터를 요청할 수 있는, HTTP 클라이언트 도구 중 하나 * GET방식 옵션 없이 아래처럼 ..