[thymeleaf] 타임리프 설명 및 문법 정리
·
ETC/TIP
타임리프(thymeleaf) 타임리프(thymeleaf)란 스프링부트에서 공식적으로 지원하는 View 템플릿 엔진입니다. 타임리프의 목표는 템플릿을 만들 때 유지관리가 쉽도록 하는 것입니다.이를 위해 디자인 프로토타입으로 사용되는 템플릿에 영향을 미치지 않는 방식인 Natural Templates 기반으로 합니다. Natural Templates은 기존 HTML 코드와 구조를 변경하지 않고 덧붙이는 방식입니다. 타임리프 장점 - 코드를 변경하지 않기 때문에 서버팀과 퍼블팀 간의 협업이 편해집니다.- JSP와 달리 Servlet Code로 변환되지 않기 때문에 비즈니스 로직과 분리되어 오로지 View에 집중할 수 있습니다.- 서버상에서 동작하지 않아도 되기 때문에 서버 동작 없이 화면을 확인할 수 있습니다..
[Java] DTO, VO, DAO 차이점
·
BackEnd/Java
DAO (Data Access Object) 데이터베이스와 상호작용을 담당하는 객체를 말합니다.데이터베이스에 접근하기 위한 로직을 분리하기 위해 사용합니다.직접 데이터베이스에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행합니다. DAO 예시 코드 public class UserDAO { public void createUser(User user) { // 데이터베이스에 유저 정보를 저장 } public User getUserById(int userId) { // 데이터베이스에서 유저 정보 조회 } public void updateUser(User user) { // 데이터베이스에서 유저 정보 업데이트 } p..
[자료구조] 스택 vs 큐
·
CS/자료구조 & 알고리즘
스택(Stack) 입력과 출력이 방향이 한 곳으로 제한이 되며, 후입선출(LIFO, Last In First Out) 원칙을 가지고 있습니다. 스택의 사용 예시 1. 웹 브라우저 방문기록(뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여주는 형식으로 스택 구현 2. 역순 문자열 만들기 : 가장 나중에 실행된 것부터 실행을 취소한다 3. 후위 표기법 계산 4. 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)  스택(Stack) 코드 예시 데이터 넣을 때는 push()데이터 최상위 값을 뺄 때는 pop()비어있는 지 확인하고자 한다면 isEmpty()꽉차있는 지 확인하고자 한다면 isFull()  push와 pop할 때는 해당 위치를 알고 있어야 하므로 기억하고 있는 '스택 포인터(SP)'..
[GIT/SpringBoot] SpringBoot 민감정보 gitgnore 숨기기
·
Infra & DevOps/Git
git으로 소스를 관리하면서 API 키나 DataBase(DB) 비밀번호 등 개인적인 민감 정보를 숨겨야 하는 경우가 있습니다.이럴 경우에는 어떻게 해야 하는지 알아보겠습니다.   gitgnore란? Git으로 관리되는 로컬 저장소에서 특정 파일이나 폴더를 Git이 추적하지 않도록 설정하는 파일입니다. 쉽게 말해 "난 이 파일이 깃에 push 하고 싶지 않아" 하는 파일들을 적어놓는 파일입니다. 따라서 민감 정보를 숨기기 위해서는 gitgnore에서 설정해줘야 합니다. 1. 우선, springboot에서 gitgnore 파일에 들어가주세요   2. gitgnore 파일에 민감 정보를 적은 application.properties를 파일에 적어주세요 application.properties 저 같은 경우에..
[자료구조] Array, Array List, Linked List
·
CS/자료구조 & 알고리즘
배열(Array) 배열은 메모리 상에서 연속적 데이터를 저장합니다. 또한, 인덱스와 번호에 대응하는 데이터로 이루어져 있습니다.배열에는 데이터들이 순차적으로 저장되어 값의 번호가 곧 배열의 시작점으로부터 값이 저장되어 있습니다.첫 번째 값의 인덱스는 0으로 시작하고 마지막 값은 배열의 길이 - 1까지의 인덱스 번호로 되어 있습니다.   Array List 배열과 같은 순차리스트이며 인덱스를 내부의 객체를 관리한다는 점은 유사합니다.하지만 한번 생성되면 크기가 변하지 않는 배열(Array)와 달리ArrayList는 객체들이 추가되어 저장 용량을 초과한다면 자동으로 부족한 크기만큼 저장 용량이 늘어납니다.  연결 리스트(Linked List) 연속적인 메모리 위치에 저장되지 않는 선형 데이터 구조를 말합니다..