개발공부/Java & Spring 4

[Java] private 멤버 변수를 사용하는 이유

객체의 멤버 변수에 직접 접근하지않도록 하기위해 클래스 안에 private 변수를 사용하고 public setter, getter 메서드를 사용하는데 이렇게 구현하는 이유가 궁금했음 그 이유는 캡슐화를 구현하기 위함 캡슐화란, 데이터와 해당 데이터를 처리하는 메서드를 하나의 단위로 묶는 것 캡슐화를 하면 얻을 수 있는 이점은? 1. 데이터의 무결성을 보장할 수 있음 public 메서드를 사용하여 데이터에 접근하기때문에 클래스 외부에서 데이터를 무분별하게 변경할 수 없음 데이터의 정확성, 일관성, 유효성을 보장할 수 있음 2. 클래스 내부 구현을 숨길 수 있음 클래스 사용자는 public 메서드를 사용하여 클래스를 사용할 수 있고 클래스 내부 구현에 대해서 신경쓰지않아도됨 3. 코드의 유지보수성을 높일 수..

[Java] 생성자

생성자란? 클래스의 인스턴스를 초기화하는데 사용되는 메서드 클래스의 이름과 동일하며, 반환값이 없고, 클래스의 인스턴스가 생성될 때 자동 호출됨 인스턴스 변수의 초기값을 설정하거나 매개변수를 받아들이고 이를 인스턴스 변수에 할당하거나 다른 메서드를 호출하여 인스턴스를 초기화하는 등의 작업을 수행함 인스턴스 변수의 초기값을 설정하는 생성자 예시 코드 public class Person { private String name; private int age; public Person() { this.name = "Unknown"; this.age = 0; } } Person person = new Person(); // 생성자 호출하여 인스턴스 초기화 매개변수를 받아들이고 이를 인스턴스 변수에 할당하는 생성자..

[Spring] CSR, SSR

SSR - 서버 사이드 렌더링(JSP, 타임리프) 서버에서 동적으로 최종 HTML을 생성해서 클라이언트에 전달 CSR - 클라이언트 사이드 렌더링(React, Vue.js) HTML 결과를 자바스크립트를 사용해서 웹 브라우저에서 동적으로 생성해서 사용 주로 동적인 화면 사용, 웹 환경을 마치 앱처럼 필요한 부분부분 변경할 수 있음 1. 웹 브라우저에서 서버에 요청(html 내용 x, 자바스크립트 링크) 2. 자바스크립트 요청(클라이언트 로직, HTML 렌더링 코드) 3. http api - 데이터 요청(JSON으로 응답) 4. 자바스크립트로 HTML 결과 렌더링 CSR, SSR 동시에 지원하는 웹 프레임워크도 있음

[Springboot] 기본 동작 환경

[정적 컨텐츠] 웹 브라우저에 URL로 톰캣 서버에 요청을 하고 1. 스프링 컨테이너에 관련 컨트롤러가 있는지 탐색 2. resources에 해당 url html 파일을 탐색 탐색한 view를 응답하게 됨 [MVC와 템플릿 엔진] 웹 브라우저에 URL로 톰캣 서버에 요청을 하고 스프링 컨테이너에 관련 컨트롤러를 탐색, 요청한 template과 model을 viewResolver에게 전달 Thymeleaf 템플릿 엔진에서 처리해서 html로 변환 후 응답 [API] - @ResponseBody 문자 반환 @ResponseBody를 사용하면 viewResolver를 사용하지않음 대신, HTTP의 BODY에 문자 내용을 직접 반환(StringConverter) - @ResponseBody 객체 반환 객체가 반..