전체 글94 MSSQL 서버 최대 메모리 설정하기 / 메모리 할당 관련 MSSQL을 사용하고 있고 DB 전용 서버를 구축하고 있는 고객사에서 메모리 과부하 증상으로 원격 점검을 시행했다. 현상 분석 1.DB 서버의 전체 용량은 32G였으며, 점검 당시 약 30G의 메모리를 SQL Server에서 독점하고 있었다. 2.SQLServer 내 최대 메모리 설정은 29000MB로 설정되어 있었다. 메모리가 항상 이렇게 가득 차있어서 점검 요청을 한 것이고, 결론적으로는 '최대로 설정한 메모리만큼 가득 차 있고, 메모리 부족 에러가 발생하지 않는 상태는 '정상'이다!' 하지만 가득 차도 너무 가득 차서(30G/32G), 자칫 하면 메모리 부족 에러로 갈 수 있는 상황이였기 때문에 조치를 취했다. 여기서 드는 의문점 1) 최대 메모리 설정을 29G로 했는데, 왜 이를 넘어섰을까? 최대.. DATABASE 2022. 2. 17. [에러]Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 에러 해결하기 에러 내용 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986 09-Sep-2020 11:28:49.114 INFO [http-nio-9011-exec-21] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentE.. JAVA 2022. 2. 15. 톰캣 DBCP 커넥션 설정하기 커넥션의 개수 커넥션 풀의 저장 구조 커넥션 개수를 제대로 설정하려면 Commons DBCP 내부에서 커넥션 풀이 어떤 구조로 저장되는지 이해해야 한다. Commons DBCP는 그림 1처럼 commons-pool에서 제공하는 리소스 풀의 기능을 이용한다. 그림 1 commons-pool의 GeneriObjectPool 커넥션 생성은 Commons DBCP에서 이루어진다. Commons DBCP는 PoolableConnection 타입의 커넥션을 생성하고 생성한 커넥션에 ConnectionEventListener를 등록한다. ConnectionEventListener에는 애플리케이션이 사용한 커넥션을 풀로 반환하기 위해 JDBC 드라이버가 호출할 수 있는 콜백 메서드가 있다. 이렇게 생성된 커넥션은 co.. 헷갈리는 것들 공부 2022. 2. 3. [MYSQL] HeidiSQL 사용하여 간단하게 csv파일 테이블로 import 1. 파일의 형식을 .csv로 맞춰준다. -csv 파일이란 (Comma Separated Values) 쉼표로 구분된 값을 가진다. -excel 파일인 경우, 다른 이름으로 저장 후 csv 파일 형식으로 저장한다. -참고로, 파일 명이 너무 길면 에러가 난다. csv 파일명을 심플하게 넣어줄 테이블 이름으로 맞춰주면 편하다. 2. 정보가 들어갈 테이블을 세팅한다 ( 컬럼 개수와, 데이터 타입을 맞춰준다 ) -예를 들어 집어 넣을 csv 데이터가 아래와 같다면, CREATE TABLE abctest ( id INT(11) NULL, username VARCHAR(255) NULL, ipaddr VARCHAR(255) NULL ); 이렇게 넣어줄 데이터 타입과, 개수를 맞춰 테이블을 생성한다. 3. 도구 >.. DATABASE 2022. 1. 21. [MySQL] 문자로 된 숫자 정렬 String 형태로 되어있는 숫자 (정확히는 문자+숫자컬럼이었다) 컬럼을 정렬할 때, 그냥 ORDER BY 컬럼명 실행 시 문자열 자리수에 맞추어 정렬을 실행하기 때문에 위와 같이 정렬이 되는 현상이 발생한다. 이럴 때는, 해당 문자열을 LENGTH() 함수를 사용하여 길이를 반환 후, 그 길이로 정렬을 수행하고, 그 후에 안의 값으로 정렬을 실행한다. 무슨 말이냐면, 테스트1 부터 테스트9까지 글자수 = 4, 테스트10부터 테스트99까지 글자수 = 5, 테스트100부터 테스트999까지 글자수 = 6 이니까 먼저 글자수인 4,5,6 순으로 정렬하고, 그 각자 글자수 안에서 정렬을 수행한다. EX) username 컬럼이 '테스트{1}' 부터 '테스트{11}' 과 같이 늘어날 때 SELECT * FROM .. DATABASE 2021. 12. 20. [JAVASCRIPT] .reduce 사용법 reduce, reduceRight reduce를 덧셈 함수로 알고 계신 분들이 많은데, 대부분의 사이트에서 reduce 사용 예시를 덧셈으로 들고 있기 때문입니다. 심지어 저도 강좌에서 덧셈으로 예를 들었습니다... 하지만 reduce는 알고보면 매우 강력한 친구입니다. 함께 알아봅시다. reduce 메서드는 다음과 같이 사용합니다. 배열.reduce((누적값, 현잿값, 인덱스, 요소) => { return 결과 }, 초깃값); 이전값이 아니라 누적값이라는 것에 주의하셔야 합니다. 누적값이기 때문에 다양하게 활용할 수 있습니다. 먼저 흔한 덧셈 예시를 살펴봅시다. result = oneTwoThree.reduce((acc, cur, i) => { console.log(acc, cur, i); retur.. JAVASCRIPT&JQUERY 2021. 12. 6. JWT(Json Web Token) 그게 대체 뭔데? 요새 신입 개발자 포트폴리오에 필수적으로 포함되어야 한다는 (뇌피셜) JWT를 다뤄보자. 처음엔 JWT 발급 + 유효성 검사를 이해 하는데 보름이 걸렸다. JWT에 찾아보면 많은 정보가 나오지만, 그래서 어떻게 하라는거지? 가 궁금한 사람들을 위해 쓴다. JWT (Json Web Token) -개방형 표준(RFC7519) -서버와 클라이언트 간 정보를 주고받을 때 HTTP 리퀘스트 헤더에 JSON 토큰을 넣은 후 이를 통해 인증 -한마디로, JSON 형식의 토큰을 이용해서 상호 보안을 지킬 수 있게 하는 것이다! 왜 쓰는가? -두 개체 간 정보를 주고받을 때 안전하게 주고 받기 위해서! 특징 -Self-Contained : 토큰 자체를 정보로 사용한다. -크기가 작아서 URL파라미터나 HTTP heade.. 헷갈리는 것들 공부 2021. 11. 16. [MSSQL] 중복 데이터 삭제하기 - GROUP BY HAVING 을 이용한 중복 데이타 삭제 중복 데이타가 있나 없나 체크만 하면 뭐하나? 중복 데이타를 삭제할 수도 있어야지? 하시는 분들을 위해서 앞의 예제에서 사용되었던, 쿼리문을 이용해서 간단한 중복 데이타 삭제 쿼리를 만들어 보겠습니다. 중복 테이타가 있는 테이블은 앞의 예제에서 사용되었던 "loginLog_tbl" 을 그대로 사용하는 것으로 하겠습니다. "loingLog_tbl"의 uid 컬럼을 기준으로 한다면 kimchi 와 mfcchang 이 각 2회, 3회 중복되어 있고 아래와 같은 쿼리문을 사용해서 보다 정확히 파악할 수 있었습니다. SELECT uid, count(*) AS loginCount FROM loginLog_tbl GROUP BY uid HAVING coun.. DATABASE 2021. 11. 10. [DB] cannot create poolableconnectionfactory 에러.log org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException에러 발생 cannot create poolableconnectionfactory (communications link failure) - 'root'에 로그인 하지 못했다는 에러 MSSQL에서 해당 로그인 아이디와 비밀번호로 접속 시도 > DB에 로그인은 됨 하지만 페이지 접속하려고 하면 위의 에러 나면서 접속되지 않는 현상 WEB-INF에 있는 context.xml을 읽어오지 못하고 있어서 에러가 나는거다. 톰캣>config>Catalina 폴더에 context.xml보다 먼저 읽어버리는 파일이 존재할 수 있음. 해당 파일을 삭제한다. DATABASE 2021. 10. 27. [JAVA] JAVA EMOJI PARSER / 이모지 제거 라이브러리 사용법 / how to remove emoji JAVA / vdurmont 사용법(2) - 이모지 글자 치환하기 EmojiParser를 이용해서 Emoji > Text , Text> Emoji로 바꾸기! EmojiParser의 사용 방법은 저번 포스팅을 참고하세요. https://yenbook.tistory.com/69 [JAVA] JAVA EMOJI PARSER / 이모지 제거 라이브러리 사용법 / how to remove emoji JAVA / vdurmont 사용법 사건의발단 이모지(emoji)를 제거하는 코드에서, 기존에는 정규식과 replaceAll 함수를 사용해 이모지를 제거했었다. -그런데 이모지만 제거되어야 하는데 특수문자가 같이 필터링 됨. 문제가 된 특 yenbook.tistory.com 오늘은 EmojiParser를 이용해서 이모지를 이모지에 맞는 글자로 (웃는 표정은 smile이라는 글자로, .. JAVA 2021. 10. 20. [JAVA] JAVA EMOJI PARSER / 이모지 제거 라이브러리 사용법 / how to remove emoji JAVA / vdurmont 사용법 사건의발단 이모지(emoji)를 제거하는 코드에서, 기존에는 정규식과 replaceAll 함수를 사용해 이모지를 제거했었다. -그런데 이모지만 제거되어야 하는데 특수문자가 같이 필터링 됨. 문제가 된 특수문자는 '┼' 였는데, '┼'가 걸리지 않는 정규식을 만들어도 자바 코드에서는 정상적으로 작동하지 않았다. -5바이트가 넘는 문자는 1차로 걸러낼 수 있었지만 그마저도 '☺️'같은 글자는 바이트가 달라서 정상적으로 필터링 X -이모지가 업데이트 되어버리면 정규식을 계속 추가해야함 기존 코드 String str = str.replaceAll("[\\p{C}\\p{So}\uFE00-\uFE0F\\x{E0100}\\x{E01EF}]+", "").replaceAll(" {2,}", " "); 1.정규식을 이용 .. JAVA 2021. 10. 19. JSON 포맷 변환기 / JSONFORMATTER https://jsonformatter.org/ Best JSON Formatter and JSON Validator: Online JSON Formatter Online JSON Formatter and JSON Validator will format JSON data, and helps to validate, convert JSON to XML, JSON to CSV. Save and Share JSON jsonformatter.org 개발자가 되는 길 2021. 10. 18. 이전 1 2 3 4 5 6 ··· 8 다음