전체 글
-
-
자바 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..
-
2023년 내가 배운 52가지.내가 배운 52가지 2022. 12. 14. 09:34
1. 아디다스는 월드컵 공인구를 독점하고있고, 독점에 대해 공급할 수 있는 FIFA 파트너의 지위를 유지하기 위해 매년 거액의 돈을 FIFA에 안겨주고 있습니다. (https://www.youtube.com/watch?v=drowc80hvTc&ab_channel=MBC%EB%9D%BC%EB%94%94%EC%98%A4%EC%8B%9C%EC%82%AC) 2. 강아지의 혈액형의 종류는 13가지이며, 국제적으로 인정된 혈액형은 7가지이다.(https://kidshyundai.tistory.com/1041) (원숭이는 4가지(A, B, AB, O) 돼지는 15가지(A~O) 닭은 16가지) 3. 페이스북이 인스타그램을 인수할 때 창업한 지 16개월에, 직원은 13명. 사장 나이는 26세, 사용자는 3천만명이었고, ..
-
4. 카베르네 소비뇽 / 메를로 / 피노누아 / 시라, 쉬라즈자격증/WSET 2022. 5. 9. 23:28
5. 카베르네 소비뇽(Cabernet Sauvignon) 1) 품종의 특징 - 포도 껍질이 두꺼워 색이 진하고, 풍미와 탄닌이 강하다. - 껍질이 두껍기 때문에 생장기가 길고 따뜻해야 충분히 완숙될 수 있다. - 맛은 드라이하며, 산도가 높고, 탄닌이 강하다. - 중간에서 무거운 바디이다. - 검은 과일(블랙커런트, 블랙 체리)과 보통 허브(민트)나 식물성(초록 피망/고추)의 풍미가 두드러진다. 2) 기후 및 완숙 정도에 따른 특징의 변화 - 온화하고 따뜻한 기후에서 재배되지만 온화한 기후의 경우 아주 따뜻한 부지를 제외하고는 완숙에 어려움을 겪기도 한다. - 카베르네 소비뇽은 메를로와 같이 다른 품종과 종종 혼합되고, 혼합되면 강한 탄닌과 산도를 부드럽게 할 수 있다. 3) 양조가 와인에 미치는 영향 ..