분류 전체보기

    [Spring] 스프링 MVC 흐름

    스프링 MVC의 웹 요청을 처리하는 과정은 다음과 같다. ① 웹 브라우저(클라이언트)에서 URL을 요청하면 가장 먼저 디스패처 서블릿에 전달된다. ② URL 요청을 받은 디스패처 서블릿은 어느 컨트롤러에서 요청을 처리할지 결정하려고 핸들러 매핑으로 적합한 컨트롤러를 검색한다. ③ 핸들러 매핑은 클라이언트 요청을 처리할 컨트롤러를 결정하여 디스패처 서블릿에 반환한다. ④ 컨트롤러는 해당 클라이언트 요청을 전달받는다. GET 또는 POST 방식을 기반으로 적합한 메서드를 호출한다. ⑤ 호출된 메서드는 정의된 비즈니스 로직으로 모델 데이터를 설정하고 뷰 이름을 디스패처 서블릿에 반환한다. ⑥ 디스패처 서블릿은 웹 브라우저에서 들어온 요청을 처리한 결과를 보여 주려고 뷰 리졸버에 도움을 요청하여 응답 결과를 생..

    [MySQL] 윈도우10 MySQL 설치하기

    MySQL은 전 세계적으로 널리 사용되고 있는 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)이다. 📙 MySQL 설치하기 1. MySQL 사이트 접속 후 [Go to Download Page] 버튼 클릭 MySQL :: Download MySQL Community Server Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: A..

    [Docker] 윈도우10 Home Docker 설치하기

    Docker 란? Docker는 컨테이너 기반 가상화 기술을 사용하여 애플리케이션을 실행하고 관리하는 플랫폼입니다. 좀 더 쉽게 설명하자면, 애플리케이션을 실행하는 가상 환경을 만들어주는 도구입니다. 이 가상 환경을 우리는 컨테이너라고 부릅니다. Docker를 사용하면 개발자들은 애플리케이션과 그 환경을 하나의 패키지로 만들어서 배포할 수 있습니다. 이를 통해 애플리케이션을 더욱 쉽게 이식하고, 확장할 수 있으며, 협업도 용이해집니다. 예를 들어, A라는 개발자가 만든 애플리케이션을 B라는 개발자가 운영하기 위해서는 B가 A가 만든 환경과 설정을 재현해야 합니다. 그러나 이러한 작업은 굉장히 복잡하고 시간이 많이 걸릴 수 있습니다. 하지만 Docker를 사용하면 A가 만든 애플리케이션과 그 환경을 하나의..

    [IntelliJ] 자주 사용하는 코드 템플릿 만들기 (Live Template)

    IntelliJ에는 Live Template을 사용하여 자주 사용하는 코드를 템플릿으로 만들 수 있다. New Live Tempalte을 만드는 방법은 다음과 같다. 🎯 템플릿 생성 1. Settings(Ctrl + Alt + S)으로 들어가 검색창에 live를 입력하고, Live Templates를 클릭한다. 2. 우측에 + 버튼을 클릭한 후 Live Template을 클릭하여 새 라이브 템플릿을 만든다. 3. 아래 그림과 같이 사용할 템플릿을 입력해 주고 OK 버튼을 눌러준다. $변수$는 Tap을 누를 때마다 작성할 위치가 변할 곳을 지정하는 것 $END$는 해당 템플릿이 완성된 후 커서의 위치를 지정하는 것 Edit variables 버튼은 $변수$가 어떤 함수를 호출할지 정하는 것 Define은 ..

    [스프링 입문] Section 3. 회원 관리 예제 - 백엔드 개발

    1. 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 개발을 해야 하는데, 성능이 좋은 DB를 사용할지? NoSQL을 사용할지? 아직 정해지지 않은 상황에서 개발을 해야 하는 상황 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 (ex. 이벤트 처리 등) 서비스 : 핵심 비즈니스 로직 구현 (ex. 회원 중복 확인 등) 도메인 : 비즈니스 도메인 객체 (ex. 회원, 주문, 쿠폰 등), 주로 데이터베이스에 저장하고 관리됨 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 클래스 의존관계 MemberService 회원 비즈니스 로직이 있는 회원 서비스 (서비스 클래스에 핵심 비..

    [스프링 입문] Section 2. 스프링 웹 개발 기초

    1. 정적 컨텐츠 정적 컨텐츠는 만들어진 파일 그대로 사용자에게 전달된다. 기본적으로 스프링 부트는 정적 컨텐츠를 /static (/public, /resources, /META-INF/resources)에서 제공한다. 스프링 부트 매뉴얼 : https://docs.spring.io/spring-boot/docs/2.7.8/reference/htmlsingle/#web.reactive.webflux.static-content resources/static/hello-static.html 정적 컨텐츠 입니다. 실행 : http://localhost:8081/hello-static.html 정적 컨텐츠 이미지 /hello-static.html 요청을 받고, 내장 톰캣 서버는 컨트롤러에서 hello-stati..

    [스프링 입문] Section 1. 프로젝트 환경설정

    1. 프로젝트 생성 📝 사전 준비물 Java 11 설치 IntelliJ 설치 1. 스프링 부트 스타터 사이트 이동해서 스프링 프로젝트 생성 https://start.spring.io/ 2. 프로젝트 선택 1) Project (빌드 도구 - Maven, Gradle) 빌드는 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정으로 컴파일, 패키징, 테스트, 배포 등의 작업들을 말한다. 빌드 도구는 이러한 빌드 과정을 자동으로 수행해 주는 도구이다. 과거에는 Maven을 주로 사용했고, 요즘에는 Gradle을 사용한다. (Maven으로 프로젝트를 생성하게 되면 pom.xml이 생성되고, Gradle로 프로젝트를 생성하게 되면 build.gradle, settings.gradle이 생..

    [Java] 진수변환

    📌 10진수 → n진수 방법1 2진수 : Integer.toBinaryString(int i) 8진수 : Integer.toOctalString(int i) 16진수 : Integer.toHexString(int i) 리턴 타입은 String public class test { public static void main(String[] args) { int num = 123; // 10진수 -> 2진수 System.out.println(Integer.toBinaryString(num)); // 10진수 -> 8진수 System.out.println(Integer.toOctalString(num)); // 10진수 -> 16진수 System.out.println(Integer.toHexString(num)..

    [Java] char타입 입력받기(Scanner, BufferedReader)

    자바 Scanner와 BufferedReader는 String타입으로만 입력을 받기 때문에 char타입을 입력받는 기능이 없다. 그럼, 어떻게 문자를 입력받을 수가 있을까? charAt()을 이용하면 된다. 💡 charAt(int index) String타입의 문자열에서 지정된 index에 있는 문자를 char타입으로 변환해 준다. Scanner next()로 문자열을 입력받아 charAt(0)으로 첫 번째 문자를 꺼내오면 된다. Scanner scan = new Scanner(System.in); char word = scan.next().charAt(0); BufferedReader readLine()으로 문자열을 입력받아 charAt(0)으로 첫 번째 문자를 꺼내오면 된다. BufferedReade..

    [Linux] 자주 사용하는 리눅스 기본 명령어 모음

    자주 사용하는 리눅스 기본 명령어에는 어떤 것들이 있는지 정리해 보았다. clear : 터미널 창 지우기 exit : 터미널 종료하기 pwd (print working directory) : 현재 위치의 경로 ls (list) : 현재 위치의 파일목록 -a : "."으로 시작하는 숨긴 파일이나 디렉터리도 함께 표시 -l : 파일이나 디렉터리의 상세 정보를 함께 표시 -r : 파일의 정렬 순서를 거꾸로 표시 -t : 파일 작성 시간 내림차순으로 표시 (가장 최근 수정된 파일이 맨 위) 💬 이름 뒤에 슬래시(/)가 붙어 있는 것은 디렉터리. cd (change directroy) : 디렉터리 이동 🎯 리눅스에서 디렉터리를 나타내는 기호 리눅스에서는 현재 위치나 파일 경로를 나타낼 때 몇 가지 약속된 기호를 ..