정규화정규화란 RDB 설계에서 이상 현상을 해결하고, 중복을 최소화한 데이터 구조를 설계하는 방법이다.1~5차 정규형까지 있으며, 4차 정규형부터는 역효과가 발생할 수 있기 때문에 일반적으로는 3차 정규형까지만 사용한다. 이상 현상이란?잘못된 테이블 설계로 인해 갱신 이상, 삽입 이상, 삭제 이상 문제가 발생할 수 있다. 학번이름나이성별 강의 코드강의명전화번호1001김철수21남A12Database010-1234-12341002이유리21여A13OS010-3562-56741003신짱구23남A14Data Structure010-2345-67891003신짱구23남A15Web Programming010-2345-67891004맹구22남A16Algorithm010-5673-6951 갱신 이상: 중복된 데이터 중..
@OneToMany 필드를 작성하면서, 엔티티는 고유하기 때문에 Set을 사용해야할 것 같다는 생각이 들었다. 하지만 생각해보니 이제껏 강의나 다른 사람의 코드를 봤을 때는 대부분이 List를 사용하는 것을 보았는데 어떤 이유 때문에 List를 사용하는 것인지 의문이 들어 찾아보게 되었다. Why? JPA에서 지연 로딩을 적용했을 경우 프록시 객체를 반환하는데, 이때 OneToMany의 Set에 데이터를 추가하게되면 중복 검사를 진행하게되어 프록시가 강제로 초기화되는 문제가 발생한다. 그렇게 되면 지연 로딩의 장점을 활용할 수 없게되어 성능이 떨어질 수 있기 때문에 중복 검사를 하지않는 List를 많이 사용한다고 한다.
WAS웹 애플리케이션 서버라고 부르며, 동적 컨텐츠를 처리하는 서버이다.자바에서는 대표적으로 톰캣을 가장 많이 사용하며, 톰캣은 자바 코드로 작성된 Open Source WAS로 정적 컨텐츠를 처리하는 Apache Web Server와 동적 컨텐츠를 처리하기 위한 Servlet Container로 구성되어 있다. ServletServlet은 클라이언트의 요청과 서버의 응답을 처리하기 위한 자바 객체로 Servlet Container에 의해 생성되고 관리된다. 브라우저가 요청을 보내면 다음 서블릿 객체를 찾고, 없다면 생성하고, 존재한다면 새로운 스레드에 기존 서블릿을 할당하여 사용한다. 서블릿 객체는 서블릿 클래스 내부의 service() 메서드를 통해 실행되는데 service()는 내부적으로 GET,..
문제 파일 업로드 시 파일명에 '-', '_' 을 제외한 특수 문자 사용 시 예외를 발생시키는 코드에서 아래와 같은 정규표현식을 사용했고, 테스트 결과 문제가 없음을 확인했다. /^[ㄱ-ㅎ가-힣a-zA-Z0-9_\s-]*$/ 이후 파일명에 문제가 있는지 확인하기 위해 파일명과 똑같은 문자열을 비교하였으나, 다른 결과가 나왔고 문자열의 길이 또한 다르게 출력되었다. 원인 MacOS의 유니코드 정규화 인코딩 방식이 javascript의 기본 문자열과 다르기 때문이었다. Mac에서는 NFD 방식을 사용하는데, NFD 방식으로 작성된 문자열은 ['ㅎ', 'ㅏ', 'ㄴ', 'ㄱ', 'ㅡ', 'ㄹ']과 같이 초성, 중성, 종성으로 분리된 문자 배열이고 Javascript에 일반 문자열은 ['한', '글']과 같이 ..