Programming70 [Spring Boot] @SessionAttridutes, @ModelAttribute란? 서론 이번글에서는 타이틀에서 언급한 세션 관련된 애노테이션에 대해 학습해보려한다. 바로 알아보도록 하자. @ModelAttridute란? 사용자가 요청 시 전달하는 값을 오브젝트 형태로 매핑해주는 애노테이션이다. @SessionAttridutes란? 모델 정보를 HTTP 세션에 저장해주는 애노테이션이다. 1. 컨트롤러 메서드 중 @SessionAttridutes에 지정한 이름과 동일한 이름이 있다면 이를 세션에 저장시켜주는 역할을 한다. >> 뷰가 이 모델을 참조해서 기존 사용자 정보를 폼에 바인딩 시키기 위해서이다. 2. 여러 화면에서 사용해야 하는 객체를 세션에서 공유할 때 사용한다. 3. @ModelAttribute가 지정된 파리미터가 있을 때 해당 파라미터에 전달해줄 오브젝트를 세션에서 가져온다... Programming/Spring 2022. 4. 9. [Spring Boot] Thymeleaf Caching의 의미와 설정 (템플릿 캐싱) 서론 이번 글에서는 템플릿 엔진 중 하나인 타임리프의 캐시에 대해 알아보려한다. 기본적으로 템플릿은 최초 사용될 때 한 번만 파싱되는 성격을 갖고있다. 파싱된 결과는 향 후 사용을 위해 캐시에 저장되는데, 이것은 프로덕션에서 애플리케이션을 사용할 때 좋은 기능이다. 매번 요청을 처리할 때마다 불필요하게 템플릿 파싱을 하지 않으므로 성능을 향상시킬 수 있기 때문이다. 이러한 캐싱이 개발할 때는 오히려 불편한 요소로 작용된다. 애플리케이션을 시작하고 디자인 수정 후 새로고침을 하더라도 수정 전의 페이지만 나오는 것을 확인할 수 있는데 이를 보완하기 위해 해당 캐싱의 속성을 설정할 수 있게끔 지원해준다. 이번 글에서는 해당 내용을 설정하는 방법에 다뤄보려한다. 템플릿 엔진 캐싱 방법 필자같은 경우는 타임리프로.. Programming/Spring 2022. 4. 8. [Spring Boot] @Vaild 유효성 검사 하는 방법 (개념/ 예제) 서론 이번 글에서는 입력하는 부분에 대한 @Vaild 애노테이션을 이용하여 유효성 검사하는 방법에 대해 알아보려한다. 필자는 SpringInAction5 교재에 있는 내용을 활용하여 작성했다. 유효성 검사란? 1. 데이터의 값이 유효한지, 조건에 타당한지 확인하는 것을 말한다. 2. 올바르지 않은 데이터를 서버 또는 DB로 전송되는것을 막기 위함이다. @Vaild를 이용한 유효성 검사 방법 #01. Dependency 추가 @Vaild를 사용하기 전 pom.xml에 Dependency를 아래와 같이 추가해줘야 한다. org.springframework.boot spring-boot-starter-validation ** Validation 어노테이션 정리 Anotation 제약조건 @NotNull Nul.. Programming/Spring 2022. 4. 8. [Spring Boot] DevTools는 무슨 역할을 할까? (기능 / 특징) 서론 Spring Boot 에서는 여러 도구를 제공하는데, 그 중 하나인 DevTools에 대해 알아보자. DevTool란? 이름에서 암시하듯, DevTools는 스프링 개발자들에게 편리한 도구를 제공한다. [제공 기능] 1. 코드가 변경될 때 자동으로 애플리케이션을 다시 시작시킨다. > DevTools는 변경을 감시하며, 뭔가 변경되었음을 알게 되면 자동으로 애플리케이션을 다시 시작시켜주는 속성이 있다. 변경이 감지되는 경우 DevTools는 우리 프로젝트 코드를 포함하는 클래스 로더만 다시 로드하고 스프링 애플리케이션 컨텍스트를 다시 시작시켜준다. 그러나 다른 클래스 로더와 JVM은 그대로 둔다. 따라서 애플리케이션이 시작하는데 걸리는 시간을 조금이나마 단축해준다. 2. 브라우저로 전송되는 리소스 (.. Programming/Spring 2022. 4. 7. [Spring Boot] JAR / WAR 배포는 무엇으로 결정할까? (개념 / 특징 / 차이점) 서론 이번 글에서는 jar와 war가 각자 갖고있는 특징이 있고 상황에 맞게 배포를 해야하는데 이 부분에 대해 정리를 해보려한다. ** 필자는 SpringInAction5의 책을 참고하여 작성했다. JAR는 언제 쓰일까? JAR 패키징은 클라우드를 염두에 둔 선택이다. WAR 파일은 기존의 자바 애플리케이션 서버에 애플리케이션을 배포할 때는 적합하지만 대부분의 클라우드 플랫폼을 구성하는데는 잘 맞지 않는다. 일부 클라우드 플랫폼에서는 WAR파일을 배포하고 실행할 수 있다. 그러나 모든 자바 클라우드 플랫폼은 실행 가능한 JAR파일을 사용한다. 따라서 Spring Initializer에서도 JAR 패키징을 기본값으로 사용하는 것이다. JAR의 특징을 정리해보면.. 1. JAR는 자바로 만든 어플리케이션의 .. Programming/Spring 2022. 4. 6. C# 사설IP와 공인IP 구하는 방법 (GetHostEntry / WebClient 사용) 서론 이번글에서는 사설과 공인ip 를 구하는 방법에 대해 정리해보려한다. 보통 작업을 할 때 로컬에서는 사설, 외부에서는 공인으로 작업하게되는데 상황에 맞게 필요한 부분만 떼어내어 사용하면 될 것 같다. 필자같은 경우는 공인IP를 추출하고 입력해줘야 하는 일이 생겨 사용한 케이스였다. 소스 static void Main(string[] args) { Console.WriteLine("사설 IP : " + GetInternalIP()); Console.WriteLine("공인 IP : " + GetPublicIP()); Console.ReadKey(); } public static string GetInternalIP() { var host = Dns.GetHostEntry(Dns.GetHostName().. Programming/C# 2022. 3. 31. C# 네트워크 통신 연결 상태 확인 하는 방법 (Ping / NetworkInterface 활용) 서론 보통 비투비간 프로그램 연동을 하기위해 만들어진 프로토콜에는 기본적으로 상태체크를 한다. 이러한 상태체크는 정해진 주기마다 보내는 폴링방식으로 확인할 수도 있고 또는 연결과 끊김에 대해서 이벤트를 발생시켜서 관리하는 등 여러 가지 방법으로 체크를 한다. 이번 글에서는 통신이 확립되기 전 본인의 네트워크 상태와 지정한 IP의 통신 상태를 얻어올 수 있는 방법에 대해 소개하려한다. 참고로 필자는 정해진 프로토콜 없이 해당 장비에게 상태체크를 해보기 위해 구현하였다. 소스 static void Main(string[] args) { Console.Write(IsCheckNetwork()); Console.ReadKey(); } private static bool IsCheckNetwork() { bool.. Programming/C# 2022. 3. 31. C# Datagridview 특정 행, 열의 색상 바꾸는 방법 서론 이번 글에서는 Datagridview에서 CellFormatting 이벤트를 사용하여 특정 행,열의 색상을 바꾸고 싶을 때 사용하는 방법을 소개하려한다. 방법 //ToolBox 설정으로 안할 시 동적으로 이벤트 생성 Datagridview1.CellFormatting += Datagridview1_CellFormatting; //CellFormatting Event private void Datagridview1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if(e.ColumnIndex == Datagridview1.Columns.Count - 1) { e.CellStyle.Font = new Font("a고딕15",.. Programming/C# 2022. 3. 29. [Spring Boot] IntelliJ 디버깅 단축키 정리 [ 디버깅 이름 | 단축키 ] 정리 [ Resume : F9 ] 다음 BreakPoint로 이동 [ Step Over : F8 ] 현재 break된 라인에서 다음 라인으로 이동 [ Step Into : F7 ] 현재 break된 라인에서 실행하고있는 라인의 함수로 이동 (디테일 이동) [ Step Out : Shift + F8 ] 현재 break된 라인에서 호출한 곳으로 이동 Programming/Spring 2022. 3. 28. [Spring Boot] Thymeleaf란? (개념 / 특징 / 사용법) 서론 이번글에서는 템플릿을 이용하여 보다 쉽게 화면을 구현할 수 있는 기술이라 하는 Thymeleaf에 대해서 알아보자. Thymeleaf의 특징 | 강점 HTML5 웹 표준을 준수하는 템플릿이다. 전체적인 문법이 html5 마크업 표준을 최대한 해치지않게 설계되어있다. 템플릿 문법을 아예 템플릿에서 분리하여 사용할 수 있다. (Decoupled Logic) --> 템플릿 엔진이 작동하지 않아도 렌더링되는 정적 목업 페이지 --> 디자이너가 이해하기 쉬운 코드를 제공한다. 템플릿 문법 적용 방법 3가지 1. "th:" tag 2. "data-th-" attribute 3. decoupled logic 표현 방식(Expressions) Variable Expressions : ${...} Selection.. Programming/Spring 2022. 3. 28. [React] export 'Switch' is not exported from 'react-router-dom' 에러 해결 방법 서론 React에서 라우터 구현을 처리하기 위해 npm install react-router-dom을 해주었고 아래와 같은 에러를 마주했을 때 해결하는 방법을 정리하려한다. 오류 발생 작업 프로세스 npm install react-router-dom import {BrowserRouter, Route, Switch } from 'react-router-dom' 위처럼 npm을 설치 후 아래의 import를 지정하고 실행 했을 때 발생하는 오류이다. 오류 내용 Compiled with problems:X ERROR in ./src/components/Router.js 5:10-45 export 'Switch' ( imported as 'Switch' ) was not found in 'react-route.. Programming/React 2022. 3. 27. [Spring Boot] 간단한 Http API테스트 환경 만들기 (IntelliJ IDEA) 서론 Http 테스트라 함은 보통 Postman을 많이 활용하는 것으로 알고 있는데 IntelliJ에서 간단하게 테스트 환경을 구성할 수 있는 방법이 있어 정리하려한다. 방법 1. test폴더 - http 폴더 생성 2. http폴더 - HTTP Requset http 파일 생성 ** 필자는 파일 이름을 dev.create 해주었다. 3. 보낼 http 내용 입력 (Examples를 눌러 예제를 볼 수 있음) 4. 테스트할 내용 입력 후 밑줄 친 부분 클릭 ** 위 내용은 필자가 http 테스트할 내용을 입력한 것임. 5. 결과 출력 [최종] 위와 같이 http의 결과 값을 확인할 수 있다. Programming/Spring 2022. 3. 25. 이전 1 2 3 4 5 6 다음 💲 많이 본 글