본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

분류 전체보기472

[HTML] 파일 전송 방법 이해 HTML로 파일을 전송하려면 파일 업로드 기능을 이용해야 합니다. 여기서 전송이란 브라우저에서 다른 서버나 다른 클라이언트로 파일을 보내는 것을 의미합니다. 그러려면 파일을 웹 브라우저를 통해 보내야 합니다. 대표적인 방법으로 form 태그를 이용한 방법이 있겠습니다. 여기서 파일이란 이미지, 음악, 문서 같은 실제 파일을 의미하며 이름, 내용 같은 문자가 아닙니다. 파일을 전송하려면 바이너리 데이터로 변환 후 전송해야 하는데, 이때 HTTP 메시지 헤더를 보면 차이가 있습니다. 일반적인 문자 데이터 전송 Content-Type : application/x-www-form-urlencoded 파일 전송 Content-Type : multipart/form-data multipart/form-data 형식.. 2024. 2. 22.
개발에서 도메인이란 무엇일까? 도메인이 무엇일까요? 저도 확실하게 정의하긴 어렵습니다. 개발 영역 보다는 비즈니스적인 영역을 칭하는 부분으로 이해하고 있습니다. 정리하자면, 핵심 비즈니스 업무 영역을 말합니다. 도메인 = 화면, UI, 기술 인프라 등등의 영역을 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을 말합니다. 도메인 지식을 기반으로 시스템이나 서비스를 구현하고 변수나 메소드명, db컬럼명 까지 정의하기도 합니다. 즉 사업적인 영역에서 업무이해를 하려면, 도메인 지식을 잘 알아야 합니다. 이는 개발영역과 더불어 업무를 수행하는데 중요한 요소로 파악되지만, 개발자가 이런 부분을 다 이해해야 하는걸까요? 이는 상황에 따라 다를 수 있습니다. 물론 이해하면 좋겠지만 개발적인 부분에서 도메인 지식을 잘 이해하고 개발하는 것.. 2024. 2. 21.
[Spring] No JSR-223 scripting engine could be bootstrapped for language "javascript" 오류 해결 No JSR-223 scripting engine could be bootstrapped for language "javascript" 강의를 듣던 중 Validation 처리를 위해 @ScriptAssert 를 사용하는데 위처럼 오류가 나타났습니다. validation annotation 중 @ScriptAssert 은 Java Scripting API의 스크립팅 언어를 지원해주는 기능을 사용합니다. JDK11부터 Nashorn script API가 Deprecated되었고, JDK 15부터는 Removed되었습니다. JDK8 ~ JDK14 = NashornVM 저는 JDK17환경에서 개발중이다보니 버전이 맞지 않아 에러가 발생한 것입니다. JDK 15부터는 Nashorn engine 대신 graalv.. 2024. 2. 20.
[Spring] 하이버네이트 Validator, Bean Validation 빈 벨리데이션이란? Bean Validation? 검증 로직을 표준화하여 모든 프로젝트에 적용할 수 있는 기술을 말합니다. Bean Validation을 잘 활용하면, 애노테이션 하나로 검증 로직을 매우 편리하게 적용할 수 있습니다. Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준입니다. 쉽게 이야기 해서 검증 애노테이션과 여러 인터페이스의 모음입니다. 마치 JPA가 표준 기술이고 그 구현체로 하이버네이트가 있는것 처럼 Bean Validation을 구현한 기술중에 일반적으로 사용하는 구현체는 하이버네이트 Validator입니다. 이름이 하이버네이트가 붙어서 그렇지 ORM과는 관련이 없습니다. 하이버네이트에 대해서는 별도로 정리하고, 하이버네이트 Va.. 2024. 2. 20.
[Spring] BindingResult 검증도구 스프링이 제공하는 검증 오류를 보관하는 객체입니다. 컨트롤러에서 파라미터로 선언시키며, 검증 오류가 발생하면 여기에 보관하면 view로 전달 가능합니다. BindingResult.addError(에러객체) 에러객체 : 에러라고 판단할 정보를 담은 객체이며 ObjectError , FieldError 가 사용됩니다. 사용자가 원하는 오류 코드와, 오류 메시지를 만들고 message.properties 또는 별도의 프로퍼티를 만들어 저장 한 뒤 특정한 상황이 되면 BindingResult 에서 에러를 불러와서 출력시키기 위해 사용합니다. 이는 특정 상황에서 어떤 오류가 발생했는지 표준화를 시키기 위해, 그리고 원하는 조건에 부합하지 않을 경우 즉, 검증되지 않은 특정한 상황에서, 커스텀 에러를 내고싶을 때 .. 2024. 2. 20.
[validation] validation 검증, 확인 Validation Check라는 말이 있습니다. 검증하라는 뜻입니다. 기존에 약속된 데로 값이 올바르게 도착했는지, 스키마 규격에 맞는지 확인하라는 소립니다. 예전엔 Validation Check 라는 말이 뭔지 잘 몰랐었습니다. 왜그랬을까요?? 값을 검증하는 작업은 개발 할 때마다 했었는데, 넓게보면 상태코드나 key-value 같은 것 모두가 검증이 필요할 수 있습니다. 그런데 검증은 값을 검증하는 것 이상의 범위를 가진 것 같습니다. 클라이언트 측에서(프론트) 검증도 중요하고, 서버측(백) 검증도 중요합니다. 클라이언트 검증은 조작될 수 있으며, 자바스크립트를 통해 조작하여 보낼 수도 있습니다. 서버만으로 검증한다면, 고객에게 서비스가 바로 제공이 어려울 수도 있습니다. 프론트 측 검증과, 백단에.. 2024. 2. 19.
[Thymeleaf] 스프링에서 웹페이지 만드는 방법3, form 에서 유용한 thymeleaf 일반적으로 폼에서 사용하기 좋은 thymeleaf를 별도로 정리해보려 합니다. form은 데이터를 등록하거나 수정하는 뷰 페이지에서 주로 사용되며, 데이터를 post/get으로 넘겨주게 됩니다. 타임리프가 form에서 어떤 기능을 도울 수 있을지 정리해보겠습니다. - input field의 id, name 자동 등록 안의 id와 name을 자동으로 등록할 수 있습니다. 컨트롤러에서 객체를 model에 넣어 줬을 때, 객체의 맴버변수를 id, name, value를 넣을 수 있습니다. 컨트롤러에서 Item 객체에 itemName 맴버변수의 값만 추가해서 model에 넣었습니다. Html에서 th:field="*{itemName}" 만 추가한 것으로 id, name, value를 자동으로 렌더링 시켜줍니다... 2024. 2. 19.
[Thymeleaf] 스프링에서 웹페이지 만드는 방법2, 스프링에서 thymeleaf 쓰는 이유 타임리프는 스프링에서 만 동작하는 템플릿이 아닙니다. 스프링 없이도 동작하며, html을 열어보기만 해도 일부기능이 지원 되는 것을 알 수 있습니다. 다만 Spring과의 통합으로 다양한 기능을 편리하게 제공하므로, 스프링에서 권장하는 툴이 되었다고 합니다. 스프링으로 백엔드를 개발하는 개발자 입장에서, 간단한 뷰페이지를 만들 필요가 있을 때, 타임리프가 좋은 도구가 될 수 있다고 합니다. 일반 타임리프 메뉴얼 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 스프링 통합 타임리프 메뉴얼 https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프, 스프링 통합 방법 스프링의 .. 2024. 2. 19.
[Thymeleaf] 스프링에서 웹페이지 만드는 방법1, 타임리프 문법 정리 보호되어 있는 글 입니다. 2024. 2. 17.
[Spring] thymeleaf 디자인 간략 최소 정리 보호되어 있는 글 입니다. 2024. 2. 17.
[Spring] MVC에서 메시지 컨버터로 응답 만들기 Spring 에서 메시지 컨버터 라는 인터터페이스를 제공합니다. 이는 HTTP 메시지를 View 템플릿으로 HTML을 생성해서 응답하는 것이 아니라, HTTP API처럼 JSON 데이터를 HTTP 메시지 바디에서 직접 읽거나 쓰는 경우, HTTP 메시지 컨버터를 사용하면 편리합니다. 즉 Response의 정보에 body를 HTML이 아닌 json이나 특정 형식 데이터로 보내는데, 이를 메시지컨버터를 사용해 스프링에서 처리 해줍니다. 1. 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용합니다. HTTP 요청: @RequestBody , HttpEntity(RequestEntity) , HTTP 응답: @ResponseBody , HttpEntity(ResponseEntity) , package.. 2024. 2. 16.
[Spring] response 응답 한글 지원하도록 하기 Spring 으로 Response 를 테스트 하는 중에 request를 한글로 받았다면, 그대로 한글로 Response하는 방법을 정리해보려 합니다. 애플리케이션에서 받았을 때에도 한글이 나오는것은 확인되었으나, 응답을 postman에서 받았을 땐 한글이 깨져서 나옵니다. 이를 해결하기 위해선, 애플리케이션에서 response에 들어갈 헤더를 추가해줘야 했습니다. @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { ServletInputStream servletInputStream = req.getInputStream(); String me.. 2024. 2. 14.