전체 글

BFS 꿀잼
카테고리 없음

2024 독학사 2단계 컴퓨터공학과 시험 결과

안녕하세요. 컴공 편입을 준비하고 있는 군인입니다. 오늘 드디어 5월에 응시한 독학사 2단계 시험결과가 나왔습니다.  군대에서 준비했다 보니 1 달이라는 시간 동안 준비했음에도 시간이 넉넉하지 않았습니다ㅠㅠ그래도 8과목 중 총 7과목은 합격했네요! 저는 웹프로그래밍과 객체지향프로그래밍은 전혀 공부하지 않았습니다.왜냐면 군입대 전, 백엔드 프로젝트를 만들어봤기도 하고, 해당 과목들 평이 가장 안 좋았기에 시간을 쏟는 건 비효율이라고 생각했기 때문입니다. 하지만, 객체지향 과목은 합격을 했는데 이유는 java는 저의 가장 자신 있는 언어이며, 이 언어로 ps를 하면서 cpp를 따로 공부는 안 했지만 많은 cpp 소스코드를 봐왔기에 익숙하다고 할 수 있었습니다.  저의 과목별 준비 방법에 대해서 알려드리겠습니..

스프링/스프링 MVC

검증2 BeanValidation

컨트롤러에서 직접 검증하는 것이나 Validator를 별도로 분리하는 방법은 상당히 번거롭다. 이를 위해 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화한 것이 바로 Bean Validation이다. 이를 잘 활용하면, 애너테이션 하나로 검증 로직을 매우 편리하게 적용할 수 있다. Bean Validation이란? Bean Validation은 특정 구현체가 아닌 Bean Validation 2.0(JSR-380)이라는 기술 표준인데, 여기엔 검증 애노테이션과 여러 인터페이션이 모여있다. Bean Validation을 구현한 기술 중 일반적으로 사용하는 구현체는 `하이버네이트 Validator`이다. 하이버네이트 Validator 관련 링크 공식 사이트 : https://hibernate..

스프링/스프링 MVC

검증 validation

컨트롤러의 중요한 역할 중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 클라이언트로부터 오는 입력값을 제대로 검증하지 않는다면, 고치기 힘든 버그가 생길 수 있기 때문이다. 그렇기 때문에 이번 내용은 개발에 있어서 아주 중요한 내용이라고 해도 과언이 아니다. 클라이언트 vs 서버 검증 결론부터 말하자면, 클라이언트 검증과 서버 검증은 모두 필수이다. 클라이언트 검증은 조작할 수 있으므로 보안에 취약하다는 단점이 있지만, 즉각적인 고객 사용성을 올려주는 장점이 있다. 또한 서버 검증은 반대로 정확한 검증을 할 수 있지만, 고객 사용성이 떨어진다는 단점이 있다. 따라서 이 둘을 적절히 섞어서 사용하는 것이 좋다. 만약 API 방식을 사용한다면, API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에..

알고리즘 분류/BFS, DFS

2178 미로 탐색 JAVA

https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net BFS로 이 문제를 풀 때 가장 중요한 한가지를 기억하자. 노드간의 거리를 구할 때, 자식 노드는 반드시 부모 노드의 길이 + 1 이다. public class Dev2178 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Buffere..

알고리즘 분류/BFS, DFS

1926 그림 JAVA

https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 이번 문제는 BFS의 가장 기본적인 문제다. 아래의 코드를 간략히 설명하자면, dx, dy배열을 사용하는 이유는 (curX, curY) 좌표 기준으로 동서남북에 있는 원소를 현명하게 처리할 수 있기 때문이다. 시작점이 (0,0)이 아닐 수 있으니, 시작점이 될 수 있는 요소를 모두 찾아야 한다. 따라서 vis 배열에서 아직 방문하지 않았고, matrix 배열에서 요소가 1인 숫자를 시작점으로 간주한다...

타임리프

타임리프의 문법

해당 포스팅은 타임 리프 공식 문서를 참고하여 만든 포스팅입니다. 타임리프 준비 타임리프 템플릿을 사용하기 위해서 가장 먼저 아래의 코드를 꼭 넣어줘야 한다. 기본 출력 th:text && utext 가장 간단한 방법이다. model의 key로 값을 가져와서 아래와 같이 랜더링할 수 있다. 만약, 태그 속성 없이 출력하고 싶을 땐 "[[...]]"와 같이 사용하면 된다. 안녕하세요 [[${name}]]님 하지만 만약 "guest와 같은 HTTP Entity가 포함되어 있는 문자열을 넘길 때 기본적으로 Escape 처리가 되어서 태그는 속성으로 인정되지 않는다. 이런 경우 utext를 이용하면 된다. 안녕하세요 [(${name})]님 주의 실제 서비스를 개발하다 보면 이스케이핑 처리를 하지 않아서 정상 랜..

스프링/스프링 MVC

스프링 MVC 기본 기능

이 포스팅은 김영한 강사님의 강의를 토대로 정리한 글입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 스프링에서 기본적으로 제공하고 실무에서도 많이 쓰이는 기본적인 기능들에 대해서 알아보겠다. 스프링 MVC 기본 기능 스프링에서 Welcome Page 만들기 서블릿에서 Welcome Page를 만드는 방법은 여기를 살펴보..

스프링/스프링 MVC

스프링 MVC 구조

스프링 MVC 구조 스프링의 MVC 구조는 다음과 같다. 스프링 MVC에선, FrontController 가 DispatcherServlet으로 구현되어 있으며 스프링 MVC의 핵심이라고 할 수 있다. DispatcherServlet 서블릿 DispatcherServlet은 HttpServlet을 상속하는 부모를 상속하고 있다. 또한, 스프링 부트는 DispatcherServlet을 서블릿으로 자동 등록하고 모든 경로 "urlPatterns="/" 에 대해서 매핑한다. 요청 흐름 서블릿이 호출되면 HttpServlet의 service()가 호출 SpringMVC는 DispatcherServlet의 부모인 FrameworkServlet에서 service()를 오버라이딩 해두었으며, 이 메서드에서 여러 메서..

스프링/스프링 MVC

MVC 프레임워크

이번 강의는 김영한 강사님의 강의를 토대로 정리한 글입니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 간단히 구현한 MVC 프레임워크 이제부터 SpringMVC 패턴이 아닌 이를 직접 구현해보고 나서 몇가지들을 정리해보겠다. Front Controller 패턴 간단 소개 나는 이전 포스팅의 마지막에서 공통 처리를 하기 위..

알고리즘 분류/스택 알고리즘

6198 옥상 정원 꾸미기 JAVA

https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net https://github.com/SeongeunJi/BOJ_Algo/tree/main/%EB%B0%B1%EC%A4%80/Gold/6198.%E2%80%85%EC%98%A5%EC%83%81%E2%80%85%EC%A0%95%EC%9B%90%E2%80%85%EA%BE%B8%EB%AF%B8%EA%B8%B0 GitHub - SeongeunJi/BOJ_Algo: This is a auto push ..

Berkleeboston
SeongEun.log