Python Tips
·
Algorithm
계속 업데이트 중입니다 😊 정렬 array = [1,2,3,4,5] 1. array.sort() array.sort(reverse=True) array.sort(key=정렬기준(람다식도 가능), reverse=True/False) inputlist = [(1, 2), (-1, 3), (0, 4)] inputlist.sort(key=lambda x: x[0], reverse=True) # 결과 : [(1, 2), (0, 4), (-1, 3)] 도 가능 2. array = sorted(iteration 가능한 객체, key = 정렬 기준(람다식 가능), reverse=True/False) 필터 myfilter = filter(조건식, iteration 가능한 객체) list, tuple로 변환 가능 list..
Garbage Collector
·
Study
💡 쓰지 않는, 불필요한 메모리를 제거한다. 명시적으로 불필요한 데이터를 표현하기 위해서 null 선언 객체는 일회성이고, 금방 사라진다(Unreachable)는 개념 아래에 힙 영역을 두 개로 나누게 되었다. 이 두 개의 힙 영역은 객체의 생존 기간에 따라 Young, Old로 나눈다 Young 새롭게 생성된 객체가 할당되는 영역 대부분의 객체가 Unreachable하다. Minor GC가 이루어진다. Old Young 영역보다 크지만 GC가 덜 이루어진다. Major GC가 이루어진다. Minor GC & Major GC 동작과정
로드 밸런서
·
Server
로드 밸런서란? 서버나 장비의 부하를 분산하기 위해 사용하는 장비 4계층(전송 계층) 이상에서 동작하며 IP주소나 4계층 정보, 애플리케이션 정보를 확인, 수정한다 주로 웹 서버의 부하를 분산한다. 로드 밸런서의 종류 1. L4 로드 밸런싱 일반적인 로드 밸런서 동작 방식 TCP, UDP 기반(포트 넘버) 4계층 정보로만 분산 처리하는 경우 2. L7 로드 밸런싱 - ADC(Application Delivery Controller) HTTP, FTP. SMTP와 같이 애플리케이션 프로토콜 정보를 기반으로 로드 밸런싱 수행 HTTP 헤더 정보, URI 정보 기반으로 프로토콜 이해한 후 부하를 분산 - ADC, Proxy 역할 수행 (Squid, Nginx에서 제공하는 리버스 프록시와 유사한 기능) 정적 콘..
File->MultipartFile
·
Spring
build.gradle dependency 추가 implementation 'commons-fileupload:commons-fileupload:1.4' compile 'commons-io:commons-io:2.11.0' File->MultipartFile 변환 코드 File file = new File(fileName); FileItem fileItem = new DiskFileItem("file", Files.probeContentType(file.toPath()), false, file.getName(), (int) file.length(), file.getParentFile()); try { FileInputStream fileInputStream = new FileInputStream(file..
20220717 WIL
·
Memorization
이번 주는 구현하느라 정신없는 날이었다...! MVP를 진행하는 동안 다뤄보았던 기술 스택을 정리해 보자면 WebClient를 공부했고 Lazy Subscription으로 MVC 패턴에 적용해 보았다. 😅 그 과정에서 Reactive Progrmming, WebFlux를 학습했으나 RestTemplate의 속도가 10%가량 빨라 프로젝트에는 RestTemplate를 주로 사용하고, JMeter를 적용해 Concurrent User에 대해 성능 테스트를 해 볼 예정이다. RestTemplate을 도입한 이유는 공공 API, 카카오맵 API를 이용하기 위함이다. 공공 API에서 배리어 프리 업장을 얻어오고, 공공 API 데이터를 검증하고 더 많은 정보를 얻어오기 위해 카카오맵 로컬 API(키워드 검색, 위도..
QueryDSL 사용 전 환경설정
·
Spring
QueryDSL이란? SQL과 유사한 구문으로 안전한 쿼리를 생성할 수 있는 광범위한 Java 프레임워크 재 JPA, JDO, SQL, Java 컬렉션, RDF, Lucene, Hibernate Search, MongoDB를 포함한 별도의 모듈을 사용하여 다양한 백엔드를 광범위하게 지원한다. IDE에서 코드 완성, 리팩토링이 가능하고 , Type-Safe, Syntax-Safe 하다! QueryDSL 설정을 해 보자! 1. build.gradle 설정 추가 plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id "com.ewerk.gradle.p..