Entity
BackEnd/Spring 2023. 11. 22. 01:56

Entity는 데이터베이스 테이블과 매핑되는 자바 객체를 의미합니다. 주로 JPA와 함께 사용되며, 데이터베이스와 애플리케이션 사이의 데이터를 효과적으로 조작하고 관리하기 위한 객체 지향적인 프로그래밍 방식을 제공합니다. 되도록이면 엔티티는 Setter 메서드를 구현하지 않고 사용. 엔티티는 db와 바로 연결되어 있으므로 안전상의 문제가 발생 가능성이 높다. 엔티티를 생성할 경우에는 롬복의 @Builder 어노테이션을 통한 빌드패턴을 사 @Id 애너테이션 - SQL에서 Primary Key와 같은 특징을 가집니다. 고유 번호를 기본 키로 함으로써 동일한 값으로 저장할 수 없게합니다. @GeneratedValue - GenerationType.IDENTITY는 SQL에서 Auto_Increment와 같은 ..

백준 23.10.19 ~ 23.11.20 코딩 테스트 1달간 회고록
코딩테스트/백준(Baekjoon) 2023. 11. 20. 23:19

23.10.19일에 코딩 테스트를 시작하여 골드4를 찍는데 한 달 넘짓 걸렸다. 이 한 달이라는 기간 동안 꾸준히 풀었는데 코딩 테스트가 정말 많이 늘었다. BFS, DFS, 소트, 슬라이딩 윈도우, 이분 탐색, 해시, 우선순위 큐, 그리디 등등.. 사실 아직 부족한 부분도 많다. DFS와 백트래킹 문제는 아직 어렵게 느껴진다. 나는 이전에 4개월간 코딩 테스트를 C#으로 푼 적이 있다. 그때는 4개월 동안 했지만 수학, String에만 집중적으로 되어있었다. 이를 보니 이때 코딩 테스트를 위해서 한 건지 티어를 올리기 위해서 코딩 테스트를 한 건지 확실하게 알 수 있었다. 물론 구현/ 수학 문제가 많기 때문에 어쩔 수 없이 Math, Implementation, String에 관한 그래프가 높긴 하지만..

스프링 부트 Validation
BackEnd/Spring 2023. 11. 17. 02:53

Lombok @Data 어노테이션은 @Getter/ @Setter/ @ToString/ @EqualsAndHashCode/ @RequiredArgsConstructor를 합친 것 Spring Boot @Validated어노테이션 이 클래스를 구성하는 메서드 중에서 1개라고 notblank notnull... 을 사용하면 지우면 안 된다. @Valid `주로 메서드의 매개변수에 사용되며, 주로 스프링 MVC에서 컨트롤러의 메서드에 적용된다.` @Validated `주로 메드나 클래스에 사용되며, 스프링 MVC 외의 다른 레이어에서도 사용할 수 있다.` @NotBlank 해당 어노테이션이 붙은 요소가 null이 아니고 공백 문자를 제외한 적어도 하나의 문자를 포함하고 있음을 검증한다. @NotNull 말 그..

[HTTP] GET, POST
Study 2023. 11. 16. 00:33

GET은 정보를 얻을 때 주로 사용하고, POST는 데이터를 서버로 제출하거나 업데이트할 때 사용한다. GET은 주로 URL에 데이터를 노출시키지만 POST는 데이터를 숨겨서 보안을 높인다. GET 데이터를 URL에 첨부하여 발송 주로 정보를 요청할 때 사용. URL에 데이터가 노출되며, 전송 데이터양에 제한이 있다. 캐싱 가능. 보안에 취약 POST 데이터를 HTTP 요청의 본문에 넣어 전송. 주로 서버에 데이터를 제출 또는 업데이트할 때 사용. URL에 데이터가 노출되지 않는다, 데이터양에 제한이 없다. 캐싱이 일반적으로 되지 않음. 상대적으로 보안이 높다.

스프링 부트 Controller (1)
BackEnd/Spring 2023. 11. 14. 20:53

나는 Java를 배우기 전에는 Java가 그냥 그런 언어라고 생각했다. 하지만 자바의 기초를 습득하고 스프링을 접할 때 정말 아름다운 언어잖아!라고 다시 생각했다.. 스프링 부트의 Controller에 대해 잠시 써보고자 한다. 먼저 Spring Boot는 Java 기반의 웹 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크다. 그중 @Controller 어노테이션은 Spring에서 해당 클래스가 웹 요청을 처리하는 컨트롤러 클래스임을 나타낸다. @Controller public class ArticleController { } 저렇게 어노테이션을 붙여주기만 하더라도 스프링 부트에서 이게 컨트롤러구나 인식한다는 뜻이다..! 아니.. 자바는 C#이랑 비슷한 객체지향 언어가 아니였나..? 저런 식으로..

[DFS, BFS]를 공부하다.
코딩테스트/백준(Baekjoon) 2023. 11. 14. 00:44

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 백준 2178번을 풀면서 BFS에 대해 자세히 알게 되었다. 사실 나는 알고리즘 스터디를 하면서 BFS, DFS에 대해 막연한 불안감을 가지고 있었다. 하지만 실제로 문제를 접해보니까 생각만 잘하면 어렵지 않다는 걸 알 수 있었다.. BFS와 DFS를 모를 때 이 문제를 보았던 심정은 다음과 같다. 먼저 0,0부터 시작해 각 배열의 길이를 구하고 Math.min을 통해서 마지막 최솟값을 산출하는 계산을 했다. 물론 상 하 좌 우..

[CS] XML
Cs ( Computer Science ) 2023. 11. 10. 16:32

XML Extensible Markup Language XML 이란? XML은 마크업 형태로 데이터를 저장하고 전달할 목적으로 만들어졌으며, 저장되는 데이터의 구조를 기술하기 위한 언어입니다. 마크업(MarkUp) 이란? 태그 등을 이용하여 문서나 데이터의 구조를 표기하는 언어 https://ko.wikipedia.org/wiki/%EB%A7%88%ED%81%AC%EC%97%85_%EC%96%B8%EC%96%B4 마크업 언어 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org

[CS] Json
Cs ( Computer Science ) 2023. 11. 9. 08:42

Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷 / 데이터 교환 형식 Json에서 Key의 값은 중복이 되어서는 안된다. { "name": "John Doe", "age": 30, "email": "johndoe@example.com" } JSON 규격에서 중복 키는 허용되지 않으며 중복된 키가 필요한 경우 중첩 객체를 사용하거나 다른 키를사용해야한다! JSON은 프로그래밍 언어와 운영체제에 대해 독립적인 성향이 있다. 아래는 게임 개발할 때 서버에서 업적을 관리했던 JSON 데이터 중 하나이다. { "TUTORIAL": [ { "num": 0, "name": "AT_TT", "description": "AT_TTD", "requirement": { "type":..

IntelliJ 2023.1 ChronoUnit 에러..
Try & Error Log 2023. 11. 8. 10:36

IntelliJ를 잘 사용하던 중 ChronoUnit이 동작하지 않는 상황이 발생했다. Version OpenJDK 21 IntelliJ IDEA 2023.1 구글에 원인을 찾아봐도 오류가 나오지 않는 상황이 발생했다. 차분히 다른 프로젝트 OpenJDK 19버전을 열어서 ChronoUnit Class를 분석하기 시작하였다. OpenJDK 19 버전에서는 ChronoUnit이 잘 동작하였고 21버전에서만 동작을 하지 않았기 때문에 OpenJDK 문제보다는 IntelliJ의 문제가 아닐까 생각을 하였다. 구글에 OpenJDK21 ChronoUnit을 검색해보니 IntelliJ 2023.1 버전에서는 Java 21을 지원하지 않는다고 하였다. 오류라는 건 해결할 수 있는 문제이다. 그렇기 때문에 무조건 해당..

[FrontEnd] Html
Study 2023. 11. 6. 02:31

(마지막 수정일 11/06) HTML5는 그냥 브라우저가 구현하는 사양의 표준이라는 개념이다. HTML5를 끄는 방법은 없다. 물론 과거 버전을 쓴다고 지정할 수 있겠지만 무시된다. DOCTYPE에 변경사항을 넣어도 변하지 않는다.. 그냥 브라우저에 알려줄 뿐이지 무언가를 끄는 게 아니다. div div(division)는 콘텐츠 분할 요소이다. div는 무언가를 잡아 두는 또는 요소를 그룹화하는 제네릭 컨텐이너이고 블록 수준 요소이다. html에서만 div를 사용할 때는 유용해 보이지 않지만 CSS에서는 콘텐츠를 그룹화하고 한 번에 스타일을 정할 수 있게 한다.