본문 바로가기

분류 전체보기

(107)
[Kotlin Spring] Connection, Connection Pool, DataSource 개념과 작동원리 Topic =  Connection, Connection Pool 개념 및 작동원리와 DataSource  Connection 개념 및 생명주기 Connection?Connection 이란 특정 DB와의 연결된 세션이다. Connection은 SQL 문을 연결된 컨텍스트 내에서 실행하고 결과를 반환하느 세션으로 DB와 상호작용을 가능하게 한다. Connection이 생성되는 과정 ( Connection Pool - X )연결정보 조회- 애플리케이션 로직이 DB 드라이버를 통해 연결정보를 조회한다.- ( 각 DB 드라이버 유형마다 자체적인 URL 을 갖는다. 전달된 URL형식과 일치하는 유형의 DB 드라이버가 매핑되고, 해당 DB 시스템의 URL 형식에 맞는지 확인하는 작업 등이 진행된다. )네트워크 연결.. 2024. 8. 14. 12:26
[Kotlin Spring] HTTP 헤더 Content - Disposition 설정 - 문자열이 아닌 builder 패턴으로 사용하기 Topic -  val contentDisposition = "attachment; filename=\"${myFileName}\""김영한님 Spring MVC 강의 2편의 파일 다운로드 부분 학습중에 위와 같이 HTTP Header - Content - Disposition 을 설정하는 것을 보았는데, 위 처럼 문자열로 작성하는 것은 불편하며 실수하기 쉬워 보인다. Spring에서 제공하는 builder 패턴을 활용하여 실수할 위험이 적은 코드로 작성해보자.      적용 방법 @GetMapping("/attach/{itemId}") fun downloadFile(@PathVariable itemId : Long): ResponseEntity { ... ( db에서 i.. 2024. 7. 30. 15:30
[Kotlin Spring] Class 프로퍼티의 @NumberForrmat , @DateTimeFormat Annotation이 인식이 안되는 문제 Topic =  Kopring 환경에서,객체의 프로퍼티의 @NumberForamt 등의 Spring Annotation이 적용되지 않는 문제 ➡️ use-site target 지정하여 해결.  문제 코드, 해결 코드 🟥 문제 코드data class FormatterForm ( @NumberFormat(pattern = "#,###") val formNumber : Double, @DateTimeFormat(iso = DateTimeFormat.ISO.NONE, pattern = "yyyy,MM,dd HH:mm:ss:SSS") val date : LocalDateTime)  ✅ 해결 코드data class FormatterForm ( @field: NumberFormat(pat.. 2024. 6. 29. 15:38
[DB] DBeaber SQL DB 암호 까먹었을 때 OpenSSL로 복호화 ( 복구 ) Topic =  DBeaber 암호를 까먹어서 복호화해보고 정리.   Why Maria DB 연결 테스트 도중 아래 오류 코드와 같이 DB 비밀번호 오류 코드가 발생했다. 비밀번호를 따로 저장해두지 않아서 복호화 해보기로 했다.Error: 1045-28000: Access denied for user 'root'@'localhost' (using password: YES) - 복호화는 암호화된 데이터를 정상적인 데이터로 변경하는 과정을 말한다.  1. OpenSSL 다운로드- Window Win32/Win64 OpenSSL Installer for Windows - Shining Light ProductionsMinimum system requirements: Windows XP or later 32MB.. 2024. 6. 8. 01:40
[CS] 정렬 알고리즘 - 기본개념 [ 버블 정렬, 선택 정렬, 삽입 정렬, 힙 정렬, 병합 정렬, 퀵 정렬 ] Topic = 기본 정렬 알고리즘 학습해보기    Why  배열 정렬은 표준 라이브러리에서도 제공해주기 때문에 복잡한 경우가 아니라면 직접 다루는 경우가 적지만, 기본 제공 정렬 함수로 만족하지 못하는 상황에서 상황에 맞는 최적의 선택을 하기 위해선 학습이 필요할 것 같다.    버블 정렬 버블정렬은 배열의 모든 요소가 정렬될 때 까지 한 쪽 방향으로 인접한 두 요소를 비교하여 위치를 바뀌주는 작업을 반복하는 알고리즘이다. ➡️ 버블 정렬은 구현이 간단하고 쉽지만, O(N^2) 의 비효율적인 시간 복잡도를 갖고 있어 큰 데이터셋에서는 사용되지 않는다. 시간 복잡도 : O(N^2)공간 복잡도 : O(1)추가적인 메모리 사용이 거의 없는 제자리 정렬 알고리즘이다. 버블 정렬 작동 예시   더보기fun bub.. 2024. 5. 21. 19:34
[Algorithm- LocalDate] Kotlin - programmers Lv1 [ 개인정보 수집 유효기한 ] [ Algorithm Link ] 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  결과 코드 미리보기 fun solution(today: String, terms: Array, privacies: Array): IntArray { val dateFormatter = DateTimeFormatter.ofPattern("yyyy.MM.dd") val todayInfo = LocalDate.parse(today,dateFormatter) val termsInfo = HashMap () terms.forEach { it.split(.. 2024. 5. 9. 14:57
[CS] 프로그램 ( Program ), 프로세스 ( Process ), 쓰레드 ( Thread ) 학습 - 작성중 Topic =  꼬리에 꼬리를 무는 프로그램, 프로세스, 쓰레드 개념 정리 - ( 노트 필기에가깝다 ) 프로그램, 프로세스, 쓰레드의 개념 프로그램은 어떤 작업을 실행하기 위한 명령어들의 모음이다. 이 명령어 들은 기기가 수행해야 할 작업들을 소스코드 형태로 작성된다. 프로그램이 실행되면, OS( 운영체제 ) 는 프로그램을 위한 메모리 공간을 할당하고, 프로그램의 코드와 데이터를 메모리에 로드한다. 이렇게 메모리에 로드되어 CPU 에 의해 실행되는 프로그램 작업 단위를 프로세스라고 한다. 프로그램에 의해 생성된 프로세스 내에서 CPU 에서 실행되는 컨텍스트, 흐름. 즉, 작업의 실행 단위( Unit of execution )를 쓰레드라고 하며, 쓰레드는 프로세스 안에 1개 이상 존재한다. ➡️ 쉽게, 프.. 2024. 4. 30. 05:36
[Algorithm - Method Chaining ] Kotlin - programmers Lv1 [ 신규아이디 추천 ] [ Algorithm Link ] 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  최종 코드 미리보기 fun solution(new_id: String): String { return new_id.step1().step2().step3().step4().step5().step6().step7()}fun String.step1 () = this.lowercase()fun String.step2 () = this.filter { listOf('.', '-', '_').contains(it) || ('a'..'z').contains(it) || ('0'.. 2024. 4. 25. 00:16