IT/Java 11

MVC 패턴과 모델1, 모델2의 차이

MVC 패턴과 모델1, 모델2의 차이 1. MVC 패턴이란?Model: 애플리케이션의 데이터와 비즈니스 로직을 관리합니다. 모델은 데이터베이스와의 상호작용, 데이터 처리, 비즈니스 규칙 적용 등을 담당합니다.View: 사용자에게 보여지는 화면을 담당합니다. 뷰는 UI를 구성하고 사용자 인터페이스를 표시합니다. 데이터는 모델로부터 전달받아 표시됩니다.Controller: 사용자 입력을 처리하고 적절한 비즈니스 로직을 실행한 후, 결과를 뷰로 전달합니다. 컨트롤러는 모델과 뷰 사이의 중개자 역할을 합니다.MVC 패턴을 사용하면 애플리케이션의 구조를 분리하여 각 구성 요소를 독립적으로 개발하고 유지보수할 수 있습니다. 2. 모델1과 모델2의 차이MVC 패턴의 두 가지 구현 방식인 모델1과 모델2는 웹 애플리케..

IT/Java 2024.09.18

[JAVA] 프로세스와 스레드

프로세스(Process)와 스레드(Thread)는 운영체제에서 프로그램의 실행 단위를 의미합니다. 이 둘은 컴퓨터 프로그램의 실행 방식을 다르게 정의하며, 각각의 특징과 사용 목적이 다릅니다.​프로세스 (Process)1. 정의:프로세스는 실행 중인 프로그램의 인스턴스입니다. 프로그램이 실행되면 운영체제로부터 메모리와 자원을 할당받아 독립된 실행 환경을 갖게 됩니다.2. 특징독립적 메모리 공간: 각 프로세스는 독립된 주소 공간을 갖고, 다른 프로세스와 메모리를 공유하지 않습니다.자원 소유: 프로세스는 자신의 코드, 데이터, 파일 핸들, 프로세스 제어 블록(PCB) 등을 포함하는 자원을 소유합니다.안정성: 한 프로세스가 실패해도 다른 프로세스에 영향을 미치지 않습니다.컨텍스트 스위칭 비용: 프로세스 간 전..

IT/Java 2024.06.14

총알 피하기 게임

총알 피하기 게임​안녕하세요! 오늘은 아주 재미있는? 제가 만든 웹 게임을 소개해드리려고 합니다. 총알 피하기 게임인데요.간단하면서도 중독성 강한 이 게임을 통해 스트레스를 해소하고 순위권에 들어보세요!​게임 소개총알 피하기 게임은 웹 브라우저에서 간편하게 즐길 수 있는 아케이드 게임입니다. 플레이어는 방향키를 조작하여 사방에서 날아오는 적의 총알을 피하면서 최대한 오래 살아남아야 합니다. 게임은 방향키로 조작하며, 조작법이 간단하여 누구나 쉽게 즐길 수 있습니다. ​​게임 화면과 주요 기능게임 화면: 중앙의 작은 타워를 조작하여 사방에서 날아오는 적을 피합니다.조작 방법: 키보드 방향키를 사용하여 타워를 이동합니다.아이템: 초록색 아이템은 잠시동안 무적이 되고, 파란색 아이템은 폭탄으로 모든 총알을 없..

IT/Java 2024.06.02

[JAVA] session 세션 유효시간 설정

[JAVA] session 세션 유효시간 설정​프로젝트 진행하면서 방문자 수를 체크하는 로직을 만들었습니다.처음에는 main 화면에 접속하면 방문자 수가 증가하도록 만들었습니다.그러다 카카오톡 로그인 구현을 하고 main 화면으로 redirect 되면서 또 방문자 수가 늘어나는 현상이 일어났습니다.정확한 방문자 수를 체크하고자 세션을 활용하였습니다.​방법은 매우 간단하며 아래에 정리해보겠습니다.​1.session.isNew() 함수 사용하기session.isNew() 함수를 활용하며 됩니다.session.isNew() 함수는 사용자가 새로운 세션을 시작했음을 의미합니다.값은 true, false 이며 true는 새로운 세션이 할당된 것입니다.@RequestMapping("/") public Stri..

IT/Java 2024.05.22

[JAVA] 현재 시간 구하는 방법

[JAVA] 현재 시간 구하는 방법 프로젝트 진행하다가 현재 시간을 구해야 하는 경우가 생겼습니다. 아래 3줄을 이용해서 간단하게 구할 수 있습니다. 저는 아래와 같은 형식이 필요했기 때문에 yyyy-MM-dd HH:mm:ssDateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); 이렇게 선언하였습니다. 다른 포맷을 원할 때에는 포맷형식만 바꿔주면 됩니다.import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;// 출력 형식 지정DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");// LocalDateT..

IT/Java 2024.05.03

build.gradle httpclient 의존성 주입 에러 해결방법

build.gradle httpclient 의존성 주입 에러 해결방법 기존 프로젝트에는 아래 라이브러리를 사용하였었다.구현 'org.apache.httpcomComponents:httpclient'이번 프로젝트에서도 동일한 라이브러리를 사용하려고 하는데 아래와 같은 오류가 발생했다. Could not find ... 원인을 찾는데 굉장히 오래 걸렸는데 기존 프로젝트의 스프링부트의 버전은 2.x였고신규 프로젝트의 스프링부트의 버전은 3.x였다. 스프링부트가 2.x 버전일 때 httpclient 라이브러리의 버전은 4.x 이고,스프링부트가 2.x 버전일 때 httpclient 라이브러리의 버전은 5.x 인걸로 확인하였다. 그래서 httpclient 라이브러리의 5.x버전을 주입시키면 되는데 구글링해도 잘 나..

IT/Java 2024.05.02

Thymeleaf TemplateInputException 에러 해결방법

Thymeleaf TemplateInputException 에러 해결방법 이번 프로젝트에서는 jsp 말고 thymeleaf를 사용하기로 했다.api를 call한 이후에 다음과 같은 에러가 발생했다. 원인을 찾아보니 'Error resolving template' 템플릿 파일이 없다는 뜻이고, 템플릿 파일은 쉽게 말해 html 파일이라고 한다. 하지만 나는 아직은 화면이 필요없는 단계이다. 그래서 html 파일을 만들지 않았다.그럼 어떻게 해결해야하는지 찾아보니 Controller 어노테이션이 아닌 RestController 어노테이션을 사용하라고 한다.@RestController를 사용하니 에러가 해결되었다. @Controller는 주로 View를 반환하는데 사용한다.@Restcontroller는 데이터..

IT/Java 2024.05.01