MVC2 - Validation
·
Spring
상품 등록시의 검증 Validation Flow 정상 로직 PRG : POST - Redirect - GET 비정상 로직 예) 상품명을 입력하지 않거나, 숫자 필드에 문자가 들어오는 경우 컨트롤러에서 검증이 실패하면 검증에 실패한 정보를 담아서 등록 폼을 다시 렌더링한다. 컨트롤러에서 모델에 잘못된 데이터까지 다시 담아서 등록 폼에 다시 전달해야 한다. 어떤 값이 잘못되어 있는지 다시 알려 주어야 한다. StringUtils : 문자열 관련 기능을 강화한 클래스 Validation 방법 타입 오류 처리하기 타입 오류는 컨트롤러 접근 전에 500 - BAD REQUEST로 발생한다. 타입 오류가 발생해도 오류가 폼에 남아야 하지만 바인딩이 처리되지 못함 BindingResult 검증 오류를 보관하는 객체...
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(키워드 검색, 위도..