목록전체 글 (123)
마이의 개발 블로그
구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방식 먼저 주어진 전체 수열을 set으로 저장하고, 그 다음에 주어지는 M개의 수들의 포함여부를 set에서 체크하여 포함할 경우 1을, 아닐 경우 0을 출력하면 되는 문제이다. 로직 설명 생략 작성 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLin..

MVC 패턴과 스프링 MVC MVC 패턴은 소프트웨어 디자인 패턴 중 하나로 개념적으로 모델(model), 뷰(view), 컨트롤러(controller)의 세 가지 요소로 소프트웨어를 구성하는 방식을 말합니다. 개념적이라고 표현한 이유는 실제 프로젝트로 들어가게 되면 이 세가지의 요소 이외에도 중간 중간 연관된 요소들이 다양한 형태로 존재하여 구조를 한눈에 파악하기가 어렵고 눈에 보이지 않는 곳에서 동작하는 코드가 많기 때문입니다. 스프링 MVC는 스프링 프레임워크에서 MVC패턴 또는 REST API 패턴의 웹 개발을 단순하게 하기 위해 고안된 모듈입니다. 스프링 MVC(Spring MVC)의 구조와 흐름 스프링 MVC패턴의 아키텍쳐는 시간이 지남에 따라 모델1 -> 모델2 -> 모델2 + 프론트 콘트롤..

서론 앞서 스프링 프레임워크를 사용하는 이유에 대해 간단히 살펴봤습니다. 스프링 프레임워크는 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 어플리케이션 개발을 위한 다양한 기능과 라이브러리를 제공하고 프로그램 전체 흐름을 제어하여 개발자가 핵심 로직에만 집중할 수 있도록 돕습니다. 그렇다면 스프링 부트는 언제 사용되는 걸까요? 스프링 부트(Spring Boot)의 목적 어플리케이션 개발이 고도화됨에 따라 스프링도 어플리케이션의 용도에 따라 다양한 기능(클라우드, 시큐리티, MVC, 부트 등)을 제공하게 되었습니다. 스프링 부트는 스프링 기반 어플리케이션 개발을 더욱 효율적으로 만들기 위해 고안된 프로젝트로, 기존에 스프링 프레임워크만을 사용하여 개발 할 때에는 개발자가 직접 설정하고 관리해야했던 여러..
프레임워크가 왜 필요할까? 프레임워크가 없다면 개발자가 일일이 작성해야 했을 반복적인 작업을 줄여주기 때문입니다. 프레임워크는 어플리케이션(소프트웨어)을 개발하기 위해 필요한 구조와 규칙을 제공하는 도구나 라이브러리의 집합으로, 개발 프로세스를 간소화하여 효율성을 증진시킵니다. 개발자는 프레임워크를 사용하여 핵심 로직에 집중하고, 공통적인 작업이나 기능을 재사용할 수 있습니다. 또한, 코드의 일관성을 유지하고 유지보수가 용이해진다는 장점을 얻을 수 있습니다. 프레임워크와 라이브러리는 어떻게 다른가? 프레임워크와 라이브러리 둘 다 코드의 집합이지만 이름을 통해 그 용도를 구분할 수 있습니다. 프레임워크(framework)는 프로그램의 뼈대를 구성하며, 라이브러리(library)는 도서관의 책처럼 용도에 따..
구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 접근 방식 투포인터를 사용하여 순차적으로 탐색하며 해결할 수 있는 문제이다. 지름(D) 이하에서 제거할 개미의 수를 최소로 만든다는 건 바꿔말하면 조건에 맞는 개미 숫자를 최대한으로 보존해야함을 의미한다. 즉, 개미들의 위치가 정렬되어 저장된 배열을 포인터 두 개로 완전탐색하여 모든 경우의 수에 대해 최대 개미수를 갱신하면 되는 것이다. 포인터 begin이 고정된 상태에서 포인터 end는 조건(D 이하) 내에서 최대한 진행하여 maxAnts를 갱신한다. 조건을 벗어나면 begin을 증가시키고 다시 거기서부터 end가 탐색을 시작한다. begin과 end는 같은 곳에서 시작해 끝까지 탐색하며 b..