Hypertext Transfer Protocol서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜서버/클라이언트 모델을 따름장점 \- 불특정 다수를 대상으로 하는 서비스에 적합 \- 클라이언트와 서버가 계속 연결된 형태가 아님 -> 클라이언트와 서버
사용자 인터페이스: 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분브라우저 엔진: 사용자 인터페이스와 렌더링 엔진 사이의 동작 제어, 브라우저 소프트웨어를 동작시켜주는 핵심 엔진렌더링 엔진: 화면에 픽셀 단위로 요
html이라는 태그로 시작해서 html태그로 끝남head: html 문서에 대한 자세한, 추가적인 정보들을 포함body: 화면에 표현되야 될 div 등을 포함계층적tag를 사용해서 표현JavaScript, CSS가 html 내부에 존재할 수 있음
웹 서버: HTTP를 통해 웹 브라우저에서 요청하는 HTML 문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스 프로그램, 웹 서버 소프트웨어를 구동하는 하드웨어도 웹서버라고 칭하기도 함웹 서버의 가장 중요한 기능 - 클라이언트(Client)가 요청하는 HTML 문서
Web Application Server데이터 입력/조회 등의 동적 컨텐츠 전달하기 위해서는 프로그래밍 필요브라우저와 DBMS사이에서 동작하는 미들웨어기능프로그램 실행 환경, 데이터베이스 접속 기능 제공여러 개의 트랜잭션 관리업무를 처리하는 비즈니스 로직 수행웹 서버의
https://www.oracle.com/java/technologies/downloads/https://www.eclipse.org/downloads/현재 부스트코스의 강의를 따라하고 있으므로 Oxygen의 package를 다운로드해 주었다.주의할
URL 요청을 처리하는 프로그램
/build/classes서블릿이 컴파일 된 후 컴파일된 클래스 파일이 저장되는 폴더web.xml파일 생성 여부를 결정, 나중에 spring framework 사용 시 필요할 수 있다📣 web.xml파일이 변경될 경우 server를 restart해야 함!(3.1과 같
LifecycleServlet() - 생성자init() - 초기화service(request, response) - 서비스 호출destroy() - 제거WAS가 서블릿 요청을 받으면 해당 서블릿이 메모리에 있는지 확인if (메모리에 해당 서블릿 없음) { \- 해
웹브라우저가 WAS에게 Servlet request\-> WAS는 HttpServletRequest 객체를 생성하여 저장응답을 보낼 때 사용하기 위해 HttpServletResponse 객체 생성\-> Servlet에게 두 객체 전달\-> doGet, doPost, S
Java Server Page.jsp 확장자로, html 문서 내부에 java코드를 사용할 수 있도록 해준다모든 JSP는 서블릿으로 바뀌어서 실행됨마이크로소프트에서 ASP(Active Server Page)라는 쉽게 웹을 개발할 수 있는 스크립트 엔진을 발표1997년에
웹 어플리케이션 단위, 사용자 단위 등 어떠한 범위 내에서 변수를 유지하면서 사용하기 위해 필요한 개념변수에 대한 접근과 변수가 존재할 수 있는 영역을 나타냄네가지 스코프로 구성됨선언된 한 페이지 내에서만 값을 저장하고 사용할 수 있음PageContext 추상 클래스를
표현 언어(Expression Language)는 값을 표현하는 데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완하는 역할을 한다.자바 코드보다 좀 더 간단하게 사용 가능하여 디자이너, 프론트엔드 개발자가 쉽게 이해할 수 있어야 하는 필요성에 의해 사용됨JSP의
JSTL(JSP Standard Tag Library)은 JSP 페이지에서 조건문 처리, 반복문 처리 등을 html tag형태로 작성할 수 있게 도와줌등장한 이유: JSP는 html과 자바 코드가 섞여있어 프론트 개발자가 수정하기 어려움 -> 유지보수 어려워짐http&
애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성관리, svn등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업 손쉽게 가능CoC(Conventio
JDBC(Java Database Connectivity)의 정의자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약자바 프로그램 내에서 SQL문을 실행하기 위한 자바 APISQL과 프로그
📁jdbcexam|\_ 📁kr.or.connect.jdbcexamApp.javaJDBCExam1.java -> 메인 함수 존재|\_ 📁kr.or.connect.jdbcexam.daoRoleDao.java|\_ 📁kr.or.connect.jdbcexam.dtoRo
mysql 실행 $ mysql -uroot -p 데이터베이스 생성 $ create database card; 데이터베이스에 접근할 유저 생성 $ grant all privileges on card.* to carduser@'%' identified by 'card123
간단한 자바 프로젝트를 진행하면서 DTO, DAO라는 개념이 나왔는데 강의에서는 나중에 설명한다고 했다. 근데 그냥 궁금해서 미리 알아보았다.Data Access Object의 약자로 Database에 직접 접근하는 객체이다. DB와 연결한 후 GET, INSERT,
dao|\_📂 GuestbookDao.java데이터베이스에 직접 접근하는 메서드 위치dto|\_📂 Guestbook.java데이터 객체 위치servlet|\_📂 GuestbookListServlet.javadoget 메서드 위치|\_📂 GuestbookWrite
완전한 제품이 아닌 반제품을 이용해 완제품을 만들어내는 것처럼, 프레임워크는 이미 중요하고 어렵고 복잡한 부분이 구현되어있는 반제품이라고 보면 된다. 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션, 원스-스탑-숍(One-Stop-Shop) -> 모든 과정을
컨테이너는 인스턴스의 생명주기를 관리생성된 인스턴스에게 추가적인 기능 제공ex) Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있음WAS는 웹 브라우저로부터 서블릿 URL에 해당하는 요청을 받으면, 서블릿을 메모리에 올린 후 실행개발자가 서블릿 클
상단바 File - New - Maven Project - 디렉토리 설정 - maven-archetype-quickstart를 archetype으로 설정한 뒤 Next - 프로젝트 이름 설정 - Finishdependencies 정의가 끝난 부분에 추가propertie
Engine.javaCar.javaCar 객체에서 Engine 객체를 사용하려면 미리 생성하여 set해야 함\-> ApplicationContext로 getBean을 하면 Car객체만 가져와도 따로 Engine 객체 생성할 필요 없이 실행됨
Java Config 자바 클래스 파일을 설정 파일로 사용 @Configuration이라는 어노테이션을 붙여 사용 어노테이션 특수한 의미를 부여하는 역할을 수행 컴파일, 런타임 시에 해석됨 @Configuration 스프링 설정 클래스를 선언하는 어노테이션 @Be
응용 프로그램 또는 시스템(구성요소 포함)의 동작과 성능, 안정성이 요구하는 수준을 만족하는지 확인하기 위해 결함을 발견하는 과정사용자의 기대 수준과 요구 사항에 맞게 구현되고 동작하는지를 확인하고 이를 통해 결함을 발견, 최종적으로 결함 데이터를 근간으로 개발 프로
자바언어에서 사용되는 테스트를 위한 프레임워크@BeforeClass테스트 클래스가 실행되기 전 @BeforeClass가 붙은 메소드가 실행됨@Before테스트 메소드가 실행되기 전에 @Before가 붙은 메소드가 실행됨@Test테스트 클래스에 존재하는 각각의 메소드에
수정 후에는 프로젝트 우클릭 -> Maven -> Update Projects 해주기xml파일 또는 Java Config로 설정 파일을 작성해야 스프링 프레임워크를 사용할 수 있음\-> Java Config 클래스를 src/main/java에 생성ApplicationC
통합 테스트하나의 빈을 테스트할 때 관련된 빈들이 모두 잘 동작하는지 테스트하는 것단위 테스트관계된 다른 클래스와 상관 없이 특정 빈이 가지고 있는 기능만 잘 동작하는지 테스트하는 것MyService.java@Service 어노테이션을 사용CalculatorServic
Spring JDBC JDBC 프로그래밍에는 반복되는 개발 요소 존재 개발하기 지루한 JDBC의 모든 저수준 세부사항을 스프링 프레임워크가 처리 개발자는 필요한 부분만 개발하면 됨 Spring JDBC 패키지 org.springframework.jdbc.core
Data Transfer Object의 약자계층간 데이터 교환을 위한 자바빈즈계층이란 컨트롤러 뷰, 비지니스 계층, 퍼시스턴스 계층을 의미일반적으로 DTO는 로직을 가지고 있지 않고, 순수한 데이터 객체임필드와 getter, setter를 가짐, 추가적으로 toStri
1) ApplicationContext는 설정파일 ApplicationConfig를 읽어들임2) ApplicationConfig의 ComponentScan 어노테이션이 DAO 클래스를 찾도록 설정3) Spring 컨테이너가 DAO 클래스를 관리4) Application
import를 사용하여 DBConfig 클래스의 Configuration을 가져옴DataSource를 Bean으로 등록하고, DB 정보들을 설정하여 반환주의할 점: javax.sql.DataSource를 import해야 함
Role.java주의할 점: mysql에서 role_id라는 column명으로 가져와짐 -> NameparameterJdbc는 이를 roleId라는 자바형식으로 변환된 변수에 저장하게 되므로, roleID나 roleid와 같은 이름으로 설정하면 에러남RoleDaoSql
SimpleJdbcInsert 객체 추가RoleDao 생성자에 넣을 테이블명과 함께 SimpleJdbcInsert 객체 초기화insert, update 메소드 작성UPDATE 변수에 UPDATE SQL문 추가public static final String UPDATE=
위의 변수들을 추가하기delete, select 메소드를 추가
Model : 뷰가 렌더링하는데 필요한 데이터, 예를 들어 사용자가 요청한 상품 목록이나, 주문 내역이 이에 해당함View : 웹 애플리케이션에서 실제로 보이는 부분, 모델을 사용해 렌더링함, 뷰는 JSP, JSF, PDF, XML등으로 결과를 표현함Controller
프론트 컨트롤러 (Front Controller)클라이언트의 모든 요청을 받은 후 이를 처리할 핸들러에게 넘기고, 핸들러가 처리한 결과를 받아 사용자에게 응답 결과를 보여줌여러 컴포넌트를 이용해 작업 처리Locale 결정언어 등과 같은 기본 설정 정보를 받아와 Loca
1) /mvcexam/plusform에 요청을 보내면 웹 브라우저에 2개의 값을 입력받을 수 있는 입력창과 버튼이 있는 화면 출력2) /mvcexam/plus로 2개의 입력값을 서버에 전달, 두 값의 합을 JSP에 request scope로 전달📌 Archtype을
DispatcherServlet을 FrontController로 설정하는 방법 ✔ 방법 1. web.xml 파일에서 설정 ✔ 1) xml spring 설정 읽어들이도록 DispatcherServlet 설정 2) Java config spring 설정 읽어들이도록 D
javax.servlet.ServletRequestjavax.servlet.http.HttpServletRequestorg.springframework.web.multipart.MultipartRequestorg.springframework.web.multipart.M
http://localhost:8080/mvcexam/userform 으로 요청을 보내면 이름, email, 나이를 물어보는 폼이 보여진다.폼에서 값을 입력하고 확인을 누르면 post방식으로 http://localhost:8080/mvcexam/reg
URL은 다르지만 URL에 해당하는 웹페이지를 보여주기 위해 실행되는 부분 중 중복이 발생할 경우별도의 객체로 분리별도의 메소드로 분리컨트롤러들이 중복적으로 호출되는 부분들을 별도의 객체인 서비스로 구현업무와 관련된 메서드 -> 비즈니스 메서드라고 함비지니스 로직(Bu
방명록 데이터는 guestbook 테이블에 저장id는 자동으로 입력됨id, 이름, 내용, 등록일 저장http://localhost:8080/guestbook/을 요청하면 http://localhost:8080/guestbook/list로 리다이렉팅방명
Navigator 탭에서 .settings/org.eclipse.wst.common.project.facet.core.xml 파일 수정DBConfig, ApplicationConfig -> 비즈니스 로직쪽에서 사용됨
kr.or.connect.guestbook.dto 패키지를 먼저 생성 후 MYSQL DB에 있는 테이블대로 DTO 클래스 생성kr.or.connect.guestbook.dao 패키지 생성 후 클래스들 생성🚩 import static으로 GuestbookDaoSqls
kr.or.connect.guestbook.servicekr.or.connect.guestbook.service.implservice패키지 내에 인터페이스 생성GuestbookService.javaservice.impl 패키지 내에 클래스 생성@Transactional
1) Controller 패키지 생성kr.or.connect.guestbook.controller 패키지 생성2) Controller 클래스 생성Service Layer의 메소드를 사용하도록 함/list 요청이 들어왔을 때: start 값을 parameter로 입력받음
Representational State Transfer의 약자자원을 이름으로 구분하여 해당 자원의 상태(또는 정보)를 주고 받는 모든 것을 의미웹의 기존 기술과 HTTP 프로토콜을 그대로 활용 -> 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일자원(Resour
REST의 HATEOAS와 자체 표현 구조 등 REST API 아키텍처 스타일을 완벽하게 구현하지 못한 API를 의미
Rest API 작성을 위해 Spring MVC에서 제공하는 컨트롤러이전 버전의 @Controller와 @ResponseBody를 포함외부에서 전달받은 json 메소드를 내부에서 사용가능한 객체로 변환하거나 컨트롤러를 리턴한 객체가 클라이언트에게 Json으로 변환해 전
@GetMappingapplication/json 요청이므로 DispatcherServlet이 내부적으로 jsonMessageConvert를 사용해 Map 객체를 json으로 변환해 전송@PostMappingguestbook 객체로 반환된 것이 json으로 변환되어 c
Web API를 작성하고 테스트를 수행하기 위해서 스프링 부트 애플리케이션을 실행하고 Restlet이나 Swagger등을 이용해 개발자가 직접 테스트를 수행\-> Web API를 실행하는 시간보다 웹 어플리케이션을 실행하고 종료하는 시간이 더 오래걸리는 상황 발생JUn
Web API 문서화를 위한 도구OAS(Open API Specification), API들이 가지는 명세(Spec)을 관리하기 위한 프로젝트Web API가 수정되면 자동으로 문서를 갱신해줌1) API Design2) API Development3) API Docume
File - New - Maven Project으로 생성architype: webappGroup Id: org.edwith.webbeArtifact Id: calculatorweb.xml파일 대신 WebApplicationInitializer를 사용src/main에 j