본문 바로가기
반응형

전체 글346

[Spring] 스프링 Model 1 아키텍처와 Model 2 아키텍처 스프링 Model 1 아키텍처와 Model 2 아키텍처 ✏️ Model 1 아키텍처 아키텍처는 90년대 말부터 2000년대 초까지 자바 기반의 웹 애플리케이션 개발에 사용됐던 아키텍처로, JSP와 JavaBeans만 사용하여 웹을 개발하는 구조입니다. Model 1 아키텍처에서 Model의 기능은 JavaBeans에 의해 이루어집니다. Model은 데이터베이스 연동 로직을 제공하면서 DB에 검색한 데이터가 저장되는 자바 객체를 말합니다. JavaBeans의 Bean는 자바에서 객체를 의미하는 용어입니다. 즉, JavaBeans는 데이터베이스 연동에 사용되는 자바 객체들입니다. Model 1 아키텍처에서는 JSP 파일이 가장 중요한 역할을 수행합니다. JSP가 Controller와 View 기능을 모두 처.. 2021. 1. 12.
[Algorithm] 그리디 알고리즘 문제 풀이 - 1이 될 때까지 그리디 알고리즘 문제 풀이 - 1이 될 때까지 '이것이 취업을 위한 코딩 테스트다 with 파이썬' 이라는 책을 공부 중입니다. 이 글은 해당 책에서 그리디 알고리즘 문제 중 '1이 될때까지' 문제와 풀이를 설명합니다. 문제 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 이경우 전체과정을 실행한 횟수는 3이된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 .. 2021. 1. 11.
[Algorithm] 그리디 알고리즘 문제 풀이 - 숫자 카드 게임 '이것이 취업을 위한 코딩 테스트다 with 파이썬' 이라는 책을 공부 중입니다. 이 글은 해당 책에서 그리디 알고리즘 문제 중 ' 숫자 카드 게임' 문제와 풀이를 설명합니다. 문제 숫자 카드 게임은 여러 개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 숫자가 쓰인 카드들이 N x M 형태로 놓여 있다. 이때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑를 것을 고려하여 최종적으.. 2021. 1. 10.
[Algorithm] 그리디 알고리즘 문제 풀이 - 큰 수의 법칙 그리디 알고리즘 문제 풀이 - 큰수의법칙 '이것이 취업을 위한 코딩 테스트다 with 파이썬' 이라는 책을 공부 중입니다. 이 글은 해당 책에서 그리디 알고리즘 문제 중 '큰수의 법칙' 문제와 풀이를 설명합니다. 문제 동빈이의 큰 수의 법칙은 다양한 수로 이루어진 배열이 있을 때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스(번호)에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정한다. 예를 들어 순선대로 2, 4, 5, 6으로 이루어진 배열이 있을 때 M이 8이고, K가 3이라고 가정하자. 이 경우 특정한 인덱스의 수가 연속해서 세번까지만 더해질 수.. 2021. 1. 9.
[Java] 자바의 인터페이스(interface)란? 자바의 인터페이스(interface)란? 이 글은 `자바 인터페이스란 무엇인가?`, `어떻게 정의하고 사용하는가?`에 대하여 다룹니다. 추가적으로 인터페이스와 관련된 지식으로 익명 구현 객체, 함수형 인터페이스, 다형성, java8에 추가된 디폴트(default) 메소드와 정적(static) 메소드, java9에 추가된 private 메소드에 대해서 설명합니다. 인터페이스(interface)란? - 자바에서 객체의 사용 방법을 정의해둔 타입 - 객체의 교환성을 높여, 다형성을 구현하는데 중요한 역할을 함 - 장점: 1. 설계 단계에 인터페이스를 만들어 두면 설계 단계의 산출물과 개발 단계의 산출물을 효율적으로 관리할 수 있고, 개발할 때 메소드명, 매개 변수 명을 고민하지 안아도됨 2. 개발자의 역량에 .. 2021. 1. 7.
[Spring] 스프링 jdbc와 MySQL 연동하기 이 글을 읽으면 스프링 JDBC를 통해 MySQL을 연동하는 과정과 코드을 알 수 있습니다. 스프링 jdbc JDBC는 가장 오랫동안 자바 개발자들이 사용한 DB 연동 기술입니다. JDBC를 이용하여 DB 연동 프로그램을 개발하면 데이터베이스에 비종속적인 DB 연동 로직을 구현할 수 있습니다. 스프링 이러한 JDBC 기반의 DB 연동 프로그램을 쉽게 개발할 수 있도록 JdbcTemplate 클래스를 지원합니다. JdbcTemplate는 GOF 디자인 패턴 중 템플릿 메소드 패턴이 적용된 클래스입니다. 템플릿 메소드 패턴은 복잡하고 반복되는 알고리즘을 캡슐화해서 재사용하는 패턴입니다. 따라서 반복되는 DB 연동 로직은 JdbcTemplace 클래스의 템플릿 메소드가 제공하고, 개발자는 달라지는 SQL 구문.. 2021. 1. 6.
반응형