전체 글 (285) 썸네일형 리스트형 Spring MVC란? MVC란 Model-View-Controller의 약자로, 소프트웨어 디자인 패턴 중 하나입니다. MVC 패턴은 소프트웨어를 구성하는 요소들을 Model, View, Controller로 구분하여 각각의 역할을 분리합니다. Model 데이터와 비즈니스 로직을 담당합니다. 데이터베이스와 연동하여 데이터를 저장하고 불러오는 등의 작업을 수행합니다. View 사용자 인터페이스를 담당합니다. 사용자가 보는 화면과 버튼, 폼 등을 디자인하고 구현합니다. Controller Model과 View 사이의 상호작용을 조정하고 제어합니다. 사용자의 입력을 받아 Model에 전달하고, Model의 결과를 바탕으로 View를 업데이트합니다. Spring MVC란? Spring Web MVC는 Servlet API를 기반으로.. 231107_TIL 오늘한일 Spring 공부 IoC(제어의 역전), DI(의존성 주입) 이해하기 좋은 코드를 위한 Spring의 IoC와 DI 좋은 코드란 무엇일까? 논리가 간단해야 한다. 중복을 제거하고 표현을 명확하게 한다. 코드를 처음 보는 사람도 쉽게 이해하고 수정할 수 있어야 한다. 의존성을 최소화해야 한다. 새로운 기능을 추가 하더라도 크게 구조의 변경이 없어야 한다. DI(Dependency Injection) DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 첫번째 방법은 A객체가 B와 .. Lombok과 application.properties Lombok이란? Lombok(이하 롬복)은, 자바 프로젝트를 진행하는데 거의 필수적으로 필요한 메서드/생성자 등을 자동 생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리입니다. application.properties application.properties는 Spring과 관련된 설정을 할 때 사용되는 파일입니다. Spring과 SpringBoot의 차이에 대해 학습할 때 SpringBoot를 사용하면 개발에 필요한 설정 정보들이 자동으로 설정된다고 배웠습니다. 이 파일을 사용하면 자동으로 설정되고 있는 설정 값을 쉽게 수정할 수 있습니다. 뿐만아니라 DB 연결 시 DB의 정보를 제공해야하는데 이러한 경우에도 이 파일을 이용하여 쉽게 값을 전달할 수 있습니다. 테스트 코드 테스트의 필요성 버그' (bug) 란? 버그는 소스 코드나 '설계과정에서의 오류' 때문에 발생합니다. 간혹 우리는 용어의 “정의”를 소홀히 하기도 하는데, 때로는 이렇게 용어를 다시 정리해보는 것 도 좋다. 버그라는 단어가 “소프트웨어가 예상하지 못한 결과를 내는 것” 이라는 정의를 가진다. 개발 코드 배포 전, 버그를 (최대한 많이) 찾아내는 법 - 테스트! 블랙박스 테스팅 블랙박스 테스팅이란 소프트웨어 내부 구조나 동작원리를 모르는 블랙박스와 같은 상태에서, 즉 웹 서비스의 사용자 입장에서 동작을 검사하는 방법입니다! 장점 누구나 테스트가 가능합니다 - 개발자부터 디자이너, 베타 테스터 혹은 사장님까지! 단점 기능이 증가될 수록 테스트의 범위가 증가합니다. 시간이 갈수록 테스트하는 사람이 계속 늘어나.. HTTP란 무엇일까? HTTP(HyperText Transfer Protocol)란? 데이터를 주고 받는 양식을 정의한 "통신 규약"중 하나가 HTTP입니다. 매우 범용적인 양식을 가지고 있어 전 세계에서 제일 널리 쓰이는 통신 규약입니다. 여기서 말하는 통신 규약이란, 컴퓨터끼리 데이터를 주고 받을 때 정해둔 약속을 의미합니다. 따라서 현재 이용되는 대부분의 웹 서버가 HTTP를 기반으로 정해준 규칙에 맞게 데이터를 주고 받습니다. 우리는 어떻게 HTTP로 데이터를 주고 받을까? HTTP에서는 언제나 Request, Response라는 개념이 존재합니다. 서버와 브라우저의 관계로 가볍게 말해보면 아래와 같이 동작합니다. 브라우저는 서버에게 자신이 원하는 페이지(URL 등의 정보)를 요구(Request)합니다. 서버는 브라우.. 서버란 무엇일까? 네트워크란? 네트워크는 여러대의 컴퓨터 또는 장비가 서로 연결되어서 정보를 주고 받을 수 있게 도와주는 기술입니다. 컴퓨터, 라우터, 스위치, 허브 등의 장비들이 각각의 역할을 수행하여 정보를 주고 받습니다. 서로 정보를 주고 받기 위해서는 IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고 네트워크 프로토콜을 이용하여 통신을 하게 됩니다 Client와 Server Client 즉, 브라우저에서 서버에 정보를 요청하는 과정을 간략하게 표현한 부분입니다. 보시는 것 처럼 사용자는 브라우저를 이용하여 서버에 정보를 요청하고 응답을 받습니다. 이때 사용자의 요청이 서버에 도달하기 위해서는 해당 서버의 정보가 필요합니다. 이 때 사용자의 요청이 해당 서버에 정확하게 도달할 수 있게 제공되는 정보가 IP .. 그레이들(Gradle)이란 무엇일까? Gradle이란? Gradle은 빌드 자동화 시스템입니다. 우리가 작성한 Java 코드를 설정에 맞게 자동으로 Build해 줍니다. Build란 소스 코드를 실행 가능한 결과물로 만드는 일련의 과정을 뜻합니다. Gradle을 사용하면 간편하게 Java 소스 코드를 실행한 가능한 jar 파일로 만들어줍니다. build.gradle build.gradle은 Gradle 기반의 빌드 스크립트입니다. 이 스크립트를 작성하면 소스 코드를 빌드하고 라이브러리들의 의존성을 쉽게 관리할 수 있습니다. groovy 혹은 kotlin 언어로 스크립트를 작성할 수 있습니다. 231106_TIL 오늘한일 spring boot 공부 JPA란 JPA: Java Persistence API 자바 ORM 기술에 대한 표준 명세 PA는 애플리케이션과 JDBC 사이에서 동작되고 있습니다. JPA를 사용하면 DB 연결 과정을 직접 개발하지 않아도 자동으로 처리해줍니다. 또한 객체를 통해 간접적으로 DB 데이터를 다룰 수 있기 때문에 매우 쉽게 DB 작업을 처리할 수 있습니다. Entity란 JPA에서 관리되는 클래스 즉, 객체를 의미합니다. Entity 클래스는 DB의 테이블과 매핑되어 JPA에 의해 관리됩니다 영속성 컨텍스트란 Persistence를 한글로 번역하면 영속성, 지속성 이라는 뜻이 됩니다. Persistence를 객체의 관점으로 해석해 보자면 ‘객체가 생명(객체가 유지되는 시간)이나 공간(객체.. 이전 1 ··· 23 24 25 26 27 28 29 ··· 36 다음