list 자료형과 Collection 자료형은 Java에서 자주 사용하는 인터페이스로, 이 둘은 서로 다른 수준의 추상화를 제공합니다. 각각의 차이점과 특성을 이해하는 것은 Java 컬렉션 프레임워크를 효과적으로 사용하는 데 중요합니다.Collection 인터페이스Collection 인터페이스는 Java의 컬렉션 프레임워크의 최상위 레벨 인터페이스 중 하나로, 다양한 종류의 자료 구조를 다룰 수 있는 공통된 연산들을 정의합니다. Collection 인터페이스는 여러 다른 인터페이스들의 부모 인터페이스입니다.주요 특징:기본 연산: 추가(add), 삭제(remove), 포함 여부 검사(contains), 크기(size) 등을 포함한 기본적인 연산을 정의합니다.다양한 컬렉션 타입: List, Set, Queu..
ArrayList에 대해서 공부하다가 List 설명에서리스트는 추상화된 자료구조의 개념으로, 여러 형태의 리스트가 존재합니다. 가장 흔한 형태로는 연결 리스트(Linked List)와 배열 리스트(Array List)가 있습니다.추상화된 자료구조라는 말을 보고 추상화된 자료구조가 무슨 말인지 정확히 찾아보고 싶어서 검색해봤다.추상 자료형(Abstract Data Type, ADT) 은 자료 구조와 그 자료 구조가 수행할 수 있는 연산을 정의한 것입니다. 이를 통해 구현 세부 사항을 숨기고 인터페이스만 제공하여, 사용자는 자료 구조의 내부 동작을 몰라도 사용할 수 있습니다.추상 자료형(ADT)의 정의추상 자료형은 두 가지 주요 요소로 구성됩니다:데이터: ADT가 다루는 데이터의 종류 및 구조.연산: ADT..
인프런에서 개발자노씨 CS 강의를 듣던 와중에 Array와 Dynamic Array의 차이에 대해서 배우게 되었다. Array vs Dynamic ArrayArray : 고정된 크기. 연속된 메모리 공간. 빠른 조회 속도 O(1)Dynamic Array : Array의 단점을 보완하여 만든 자료구조. 사이즈를 resize 할 수 있음. 데이터를 계속 추가하다가 고정된 size를 초과하면 size를 두배 늘리고(doubling) 기존의 데이터를 새로운 array에 집어넣는다. (O(n)) 근데 강의를 들으면서 내가 Dynamic Array라는 걸 쓰고 있었는지...? 난 왜 그런 예시를 못 본 거 같지있으면 써봤을텐데 생각이 들어서 chatGPT에게 물어봄.Q. Dynamic Array 가 뭐야?A. Ja..
JPA를 통해 개발하다 보면 정말 쿼리로 다 되는데.. querydsl 에서 구현 안되는 게 너무 많다. 정말 마이바티스 쓰고 싶어서 눈물이 좔좔좔 특히 서브쿼리가 문제인데.. 서브쿼리가 필요한 쿼리라면 객체지향적으로 잘못 설계된 거라고 하는데... 그래도 이제 와서 바꿀 수 없잖아요..? 그래서 서브쿼리 때문에 native query를 쓰기엔 동적 조건 표현하기가 힘들어서 내놔.. 열심히 찾아본 결과 @Subselect를 발견하게 되었다. @Subselect 어노테이션은 엔티티 클래스에 적용되며, SQL 서브쿼리를 사용하여 가상 뷰를 정의하는 데 사용됩니다. 이 가상 뷰는 데이터베이스에 실제로 존재하지 않는 테이블처럼 사용할 수 있으며, 복잡한 쿼리를 ..
XSS를 방지하기 위해 여러가지 방법이 있다. request 데이터 치환하기 (DB에 치환된 데이터로 저장) response 데이터 치환하기 (정상 데이터 저장 후 response 에서 내보내기) 회사에서 요구사항이 들어와서 개발하다 개념이 헷갈려서 정리. 1번 2번 다 만들어보고 1번으로 적용하게 되었다. XSS 방지 Filter (Request 데이터 치환) 입력 데이터에 대한 필터링을 수행할 수 있는 커스텀 필터를 구현 XSS 방지 필터 구현 public class XssFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) th..