일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준알고리즘
- 스프링
- 백준
- 코틀린
- python
- MYSQL
- SQL
- 코딩교육봉사
- 1과목
- 공부일지
- CJ UNIT
- 백준 알고리즘
- kotlin
- 프로그래머스
- 소프티어
- 시나공
- 파이썬
- java
- 코딩봉사
- SW봉사
- programmers
- 정보처리산업기사
- BFS
- 문제풀이
- C++
- 자바
- 회고
- 데이터베이스
- 알고리즘
- softeer
- Today
- Total
목록개발/이슈, 트러블슈팅 (21)
JIE0025
✅ 문제상황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 (..
. ✅ 개요 이전에 아래와 같은 상황이 발생했었는데... 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에서 학생의 성적데이터를 가져오는..
✅ 개요클론 프로젝트의 첫 배포 당시, 빌드를 실패했었고 이번에 새로 배포를 하면서 이 문제를 아주 간단한 방법으로 해결했다. 상황은 다음과 같다. 📆 2월 배포 상황t2-micro 프리티어를 사용했다. 빌드 중 58% --> ASCIIDOC 빌드에서 fail이 났다. 당시에뭐가 문제인지 알지 못해서 프리티어 사용을 포기하고 t2-small로 업데이트 해봤는데, 빌드가 성공했다. 프리티어를 사용하지 않아서 발생하는 요금이 생각보다 커서, EC2 인스턴스를 제거해버렸다. 결국 t2-micro와 t2-small의 차이점에서 발생하는 성능상 이점 때문에 가능했다고 판단만 해둔 상태>> t2-micro의 RAM은 1GB이다 >> t2-small의 RAM은 2GB이다 📆 6월 재배포 상황 재배포하는 상황에서도 5..
이 글에서 도출된 결론은 제가 마주한 개발 상황에서 겪은 과정에 따른 것이며 개발 상황에 따라 달라질 수 있습니다. ✅ 선행 개념 당연히 보이어무어의 동작원리를 알고 와야한다. 보이어무어는 2가지 작동방식이 존재하고, 아래 2개의 링크를 첨부한다. 추가적으로 KMP와 함께 성능을 비교했고, 어떤점이 다른지 명확히 이해하고 싶다면 KMP알고리즘도 확인하자 1️⃣ Boyer Moore - 나쁜 문자 이동 방식 https://jie0025.tistory.com/537 [문자열 매칭] 보이어무어(Boyer-Moore) - Bad Character Heuristic ✅ 개요 어제 문자열 매칭 알고리즘 중 KMP에 대해 알아보았다. [알고리즘] 문자열 매칭 KMP (동작방식,수도코드) ✅ 개요 문자열 매칭 알고..
✅ 개요 대체 왜 우리 서비스의 ELB 도메인에 접속하면 이런 링크가 뜨는걸까? 라는 생각을 지속적으로 해왔다. 왜 401이지 ? 그냥 접속해서 그런가? 두번째로 궁금했던건 로드밸런서의 대상그룹을 통해 EC2 애플리케이션에 연결되는데 이 애플리케이션에서 상태 또한 unhealthy 한 상태라고 보여주고 있었다. 둘다 401을 반환하기 때문에 비슷한 이슈로 묶을 수 있을것이라 생각했었다. 그리고 오늘 이 unhealthy 이슈에 대해 해결방법을 찾아보았고, 조만간 처리할 목적으로 이 글을 적는다. ✅ health Check란? ELB가 여러대의 서버로 요청을 분산할 수 있는데, 이때 서버가 정상적으로 활동중인지 확인하기 위해 Health Check과정이 일어난다. 🤔 서버가 정상적인지 확인하는 이유는? E..
✅ 개요 친구가 에러를 만났는데 도통 해결할 수 없다해서 도움을 요청했다. 나도 처음 만나본 에러메세지였는데 해결 방법을 떠올리는 과정에서 역시 어떤 기술을 공부할때엔 동작원리부터 공부해야한다는 것을 다시 한번 느끼게 되어서 이 글을 작성한다. ✅ 에러메세지 Hibernate: select b1_0.id, b1_0.created_at, b1_0.post_content, b1_0.post_image, b1_0.post_purpose, b1_0.post_title, b1_0.user_id from board b1_0 2023-04-26T00:39:40.857+09:00 ERROR 9968 --- [nio-8080-exec-8] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servl..
✅ 목적 특정 키워드를 검색하기 위해 DB에 데이터를 조회하게 되면 LIKE %keyword% 이런식으로 접근하는데.... 게시물 본문과 같은 경우 글이 너무 많은 경우 그 안에서 키워드를 찾기란 쉽지 않다. 이런 경우에 검색 성능을 높이기 위해 고려할 수 있는것들이 존재한다. 쿼리 최적화와 더불어 인덱싱을 사용함으로써 성능개선에 도전해보게 되었다. ✅ 어떤 상황이었는가? (이전 설계의 상태 : ERD와 MySQL) 게시글(BulletinPost)와 장소(Amenity)는 뗄레야 뗄 수 없는 관계이다. ⏺ ERD BulletinPost와 Amenity는 다음과 같은 관계이다. 게시글 1개는 장소 1개를 가질수 있다. 장소 1개는 게시글 N개에 태그될 수 있다. ⏺ 요청 해당 API가 사용되기까지 과정은..
DTO를 생성하는 방법은 2가지가 있다. 1. 모든 요청/응답에 대한 파일을 분리하여 생성하는 방법 2. 한개의 파일을 정의하고, 내부클래스로 생성하는 방법 오늘 이야기할 DTO에서 추상클래스를 정의하는 것은 2번 한개의 파일을 정의하고, 내부클래스로 생성하는 방법에서 해당되는 이야기이니 참고 바란다)) ✅ 개요장소(Amenity) 데이터의 입력이 게시글(BulletinPost)작성시 Body로 들어오도록 설계되었다. 따라서 입력 데이터 역시 BulletinPostDto내부에 들어오게 되는데, 이때 Create와 Patch 클래스의 내부 필드가 유사함에 따라 DTO에 추상클래스를 만들어보는것에 대한 쟁점이 생겼다. ⏺ 원래 DTOpublic class BulletinPostDto { private sta..