웹 개발
-
-
자바 HashTable 과 HashMap웹 개발 2024. 3. 28. 21:58
HashTable 이란 - 해시 함수를 사용해서 변환한 값을 index 로 삼아 key 와 value 를 저장하는 자료구조 - 어떤 특정 값을 받아서 해시 함수에 입력하고, 함수의 출력값을 인덱스로 삼아 데이터를 저장한다. - 순차적으로 데이터를 저장하지 않는다. - 해시 테이블은 key-value 가 1:1 매핑되어 있어 검색, 삽입, 삭제 과정에서 모두 평균적으로 O(1) 의 시간복잡도를 갖는다. (공간 복잡도는 O(n)) - 이진탐색 트리나 배열에 비해서 속도가 획기적으로 빠르다. 해시 동작 원리 - 원래 데이터인 keys 를 Hashing 이라는 과정(hash fucntion) 을 거친다. - Hashign 과정을 거친 후 Hash value(hashing 후 데이터의 값) 로 매핑한다. - Ha..
-
User-Agent 정보 가져오기웹 개발 2024. 3. 20. 14:54
개발 중에 브라우저 정보를 필요로 하는 요구사항에 따라 습관적으로 구글 검색해서 브라우저 정보를 뽑아오는 코드를 아무생각 없이 작성하였다. HttpServletRequest request = ((ServletRequestAttributes) Optional.ofNullable(RequestContextHolder.getRequestAttributes()) .orElseThrow(() -> new RuntimeException("request Attribute is null")) ) .getRequest(); String userAgent = request.getHeader(HEADER_USER_AGENT); String browserName = "Unknown"; if (userAgent != null)..
-
정적 코드 분석 도구 Sonarqube 도입 제안웹 개발 2024. 2. 24. 09:37
1. SonarQube 소개 SonarQube는 오픈 소스 플랫폼으로, 소프트웨어 개발 프로세스의 여러 단계에서 코드의 품질을 관리하고 개선하는 데 사용됩니다. 이는 정적 코드 분석을 통해 코드 품질을 평가하고 지속적인 통합 및 개선을 지원합니다. 20개 이상의 프로그래밍 언어에서 버그, 코드 스멜, 보안 취약점을 발견할 목적으로 정적 코드 분석으로 자동 리뷰를 수행하기 위한 지속적인 코드 품질 검사용 오픈 소스 플랫폼이다. 소나소스(SonarSource)가 개발하였다. 소나큐브는 중복 코드, 코딩 표준, 유닛 테스트, 코드 커버리지, 코드 복잡도, 주석, 버그 및 보안 취약점의 보고서를 제공한다. (https://ko.wikipedia.org/wiki/소나큐브) https://trends.google...
-
@RequestBody, @ResponseBody ??웹 개발 2024. 1. 27. 02:53
1. RuqeustBody HttpMessageConverter 가 Http Request Body 내에 있는 데이터를 Java 객체로 변환해주는 역할 @Valid를 붙이면 검증을 할 수 있고, 실패 시 MEthodArgumentNotValidException 을 던진다. 주로 POST 또는 PUT 요청과 함께 사용 주로 JSON 또는 XML 형식의 데이터를 받아서 자바 객체로 변환하는데 사용 2. ResponseBody 컨트롤러 메서드가 반환하는 데이터를 HTTP 응답의 메시지 바디(body)에 넣어주는 역할 주로 컨트롤로 메서드가 JSON 또는 XML 형식의 데이터를 반환할 때 사용 스프링은 반환된 객체를 해당 형식의 데이터로 변환하고 응답 메시지를 바디에 담아 클라이언트로 전송 스프링 4.0 이후에..
-
Flyway웹 개발 2022. 12. 15. 09:21
ChatGPT 가 Hot 하길래 한번 이용해보기위해 Flyway 를 검색 해보았다.. 더보기 Flyway is a database migration tool that helps users automate the process of database schema changes. It allows users to define and manage database changes in a version control system, and then apply them to a database. This helps ensure that the database schema is up-to-date and consistent across different environments, such as development, st..