'기타' 카테고리의 다른 글

포트 충돌 날 때 윈도우 Port 확인/제거  (0) 2021.02.05
github에 프로젝트 올리기  (0) 2020.10.21
디버깅하는법  (0) 2020.09.24

새폴더에

우클릭 Git Bash Here 

git init하면 생성

 

위에 사진에 add버튼으로 생성한 파일에 작업경로설정 그 후 추가

'환경설정' 카테고리의 다른 글

github Offline Installation  (0) 2021.01.20
eclipse 초기 세팅 (줄맞춤, 스펠링체크)  (0) 2020.12.09
git설치  (0) 2020.07.17
mariaDB 설치  (0) 2020.07.16
tomcat 설치  (0) 2020.07.16

'환경설정' 카테고리의 다른 글

eclipse 초기 세팅 (줄맞춤, 스펠링체크)  (0) 2020.12.09
Source tree  (0) 2020.07.18
mariaDB 설치  (0) 2020.07.16
tomcat 설치  (0) 2020.07.16
JDK 설치  (0) 2020.07.15

password와 Confirm은 임의로 yadoc으로 지정하였다.

TCP port번호는 강사님과 맞추었는데 Buffer pool size는 자기 컴퓨터에 맞춰서 나오는데로 설정하였다. 

 

 

'환경설정' 카테고리의 다른 글

eclipse 초기 세팅 (줄맞춤, 스펠링체크)  (0) 2020.12.09
Source tree  (0) 2020.07.18
git설치  (0) 2020.07.17
tomcat 설치  (0) 2020.07.16
JDK 설치  (0) 2020.07.15

devtools라는 폴더를 하나 만들어 넣어주었다.

 

 

 

cmd창에 경로를 넣고 startup

 

 

localhost:8080

 

 

 

 

 

문제 상황

localhost8080을 했는데 고양이가 안 나오고 oracle이 나오더라...

재부팅도 해보고 서비스에서 oracle동작도 전부 정지했는데 안 뜨길래...

 

 

삭제하고 다시 하니 잘됨 ㅋ ㅋ   ㅋ    ㅋ    

...?

'환경설정' 카테고리의 다른 글

eclipse 초기 세팅 (줄맞춤, 스펠링체크)  (0) 2020.12.09
Source tree  (0) 2020.07.18
git설치  (0) 2020.07.17
mariaDB 설치  (0) 2020.07.16
JDK 설치  (0) 2020.07.15

자바 개발 키트(Java Development Kit) 설치하기

 

cmd창의 java -version과 javac -version 이 같아야 한다. 여기서 version이 같지 않게 나왔었는데

(나 같은 경우는 다른 버전의 jdk도 설치를 한 적이 있어서 그런 것 같다.)

그럴 때는 밑의 사진의 환경변수 편집에서 JAVA_HOME%\bin을 맨 위로 올려주니 되었다.

 

 

'환경설정' 카테고리의 다른 글

eclipse 초기 세팅 (줄맞춤, 스펠링체크)  (0) 2020.12.09
Source tree  (0) 2020.07.18
git설치  (0) 2020.07.17
mariaDB 설치  (0) 2020.07.16
tomcat 설치  (0) 2020.07.16

1) 컴파일 언어와 인터프리터 언어의 다른 점
* 목적 파일을 생성 하냐 안하냐.
    -인터프리터 언어는 : 목적파일을 생성하지 않는다.
    - 인간이 작성한 코드를 '실행'시 로딩 시작.

* 속도의 차이가 있음 

   -컴파일 언어는 빌드 과정에서 기계어로 변환 후에 실행하기 때문에 인터프리터 언어보다 느리며

   -런타임 상황에서는 인터프리터 언어가 한 줄씩 읽어 실행해서 컴파일 언어보다 느림


2) 정적 타입 언어와 동적 타입 언어
* 변수의 데이터 타입을 명시적으로 지정하냐 안 하냐 차이.

   -정적언어는 자료형을 컴파일시에 결정하고 동적언어는 실행시에 결정함 

   -그래서 정적언어는 속도와 타입에 안정성이 있고 동적언어는 타입의 선택의 여지가 있지만 Error의 위험이 있다.


3) 변수의 자료형에서 기본형과 참조형의 다른 점
기본형 : 원시 값. (int float long short double 원시값.
참조형 : 그 외 데이터 타입
 - 객체의 멤버(원시값이나 다른 참조형)들을 지정한 메모리 주소 가리킴.


4) http vs. https
공통점 : 웹서비스에서 쓰이는 application 계층의 프로토콜.
1차이점 : http - 주로 80번 포트, https - 주로 443번 포트
2차이점 : 암호화처리, CA인증서 필요.(https)
CA인증서를 어디서 만드느냐에 따라
웹브라우저 자물쇠 아이콘이 '빨갛게' 될 수도 있다
공개키 암호화 방식.


5) information, data, database, dbms의 개념
information : data의 조합과 연산 결과를 통계 처리한 뒤 보이는 정보(의사결정에 필요)
data : 자연 상태, 시스템에서 생성되고 분류된 값.
database : data를 기억장치에 저장, 사용자의 요구에 따라 조합하여 조회하기 위한 시스템의 개념.
dbms : database를 관계형 구조에 따라 s/w로 구현한 시스템.


6) mvc
클라이언트 <-> (웹서버<->) 웹어플리케이션 서버 - dbms로 이루어진 웹 시스템 구현을 위해 쓰이는 개념.
* 역할 구분
c(controller) : 클라이언트가 요청한 url 내용을 받아들여 model객체에 전달.
m(model) : 웹 애플리케이션에서 dbms와 통신. dbms객체 구조 정의
v(view) : WAS에서 클라이언트(end user)에게 송신할 데이터를 정의.


7) HttpMethod
GET : 데이터를 가져오고 싶다.
POST : client에서 보내주는 데이터를 삽입하고 싶다.
PUT : 지정한 '자원'을 첨부한 데이터의 값으로 수정하고 싶다.
DELETE : 요청한 자료를 삭제하고 싶다.
OPTIONS
 - 서버에서 지원하는 httpmethod 목록을 알고 싶다.
 - CORS 이슈로 인해 클라이언트의 브라우저에서 실제 request를 날리기 전에 호출한다(preflight)
 - CORS : 도메인이 다른 서버의 자원을 요청할 경우 default로 응답을 막는다.


8) Unix 계열 OS에서 사용하는 아래 명령어들의 역할.
- chmod : 파일/디렉터리의 사용자 권한 변경.
ex) rwx:rwx:rwx r(4)w(2)x(1):
user(접속사용자),
group(접속 사용자 가속한 그룹),
other(그 외 사용자들(프로세스, 다른 사용자)
- chown : 파일/ 디렉터리의 소유자 변경
ex) $ chown user:group 파일명
- mv : 파일의 위치 변경
디렉토리의 이름 변경 ($ mv dir1/ dir2/)
- ls -al : (숨김 파일 포함해서) 파일의 list 출력.
- cd ~/ : linux 로그인 후 홈 디렉터리로 이동.


9) NULL이란 무엇인가?
- 참조하는 값이 없다.
- 메모리에 참조할 객체가 없음.


10) '실행'과 '로딩'의 차이점.
코드가 기계어로 번역되어 메모리에 적재된 타이밍: 로딩.
로딩된 코드를 : 실행

 


11) 브라우저

익스플로워 IE 브라우저 

구글 브라우저 


12) DNS

 

도메인 네임 시스템 DNS 202.131.233.552.21 = naver.com

'용어정리' 카테고리의 다른 글

컴포넌트(Component)  (0) 2021.02.01
Xshell  (0) 2021.01.17
jdk, jre  (0) 2021.01.17

저번에 이어서 다 못한 Spring MVC패턴을 공부하겠다.


우선 간단하게 View를 만든다.

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<body>
<form action="bmi" method="post">
	키<input type="text" name="t1"/>cm<br>
	몸무게<input type="text" name="t2"/>kg<br>
	<input type="submit" value="비엠아이"> 
</form>
</body>
</html>

POST 방식을 사용한 이유 - POST 방식은 GET 방식과 달리 데이터 전송을 기반으로 한 요청 메서드이기 때문이다.

 

다음으로는 그 뒤로 넘어갈 jsp 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	 
	키<%=request.getAttribute("num1") %><br>
	몸무게<%=request.getAttribute("num2") %><br>
	bmi<%=request.getAttribute("result") %><br>
	입니다.  
</body>
</html>

 

JSP태그

<% %>        java code를 넣는 태그이다.

<%= %>      출력하기 위한 태그이다. out.println이랑 비슷한 기능을 함.

<%@ %>    지시자 태그이고 Web container가 JSP를 Servlet으로 변환할 때 특정 지시를 내리기 위해서 사용하는 태그

 

 

request와 response

클라이언트가 서버쪽으로 요청하는 것은 request

서버가 클라이언트에게 응답하는 것은 response

 

get과 set

get은 데이터를 빼내 오는 것

set은 데이터를 입력하는 것

 

request.setParameter()와 requestsetAttribute()

request.setParameter() get Parameter는 String의 값 밖에 받을 수 없다

requestsetAttribute() getAttribute는 List를 받기 위해 사용한다 (type이 Object이기 때문에 형변환 필요!)

 

결론적으로
출력 태그를 이용하여 클라이언트가 서버쪽으로 요청하며

num1이라는 인자값을 get 하라는 것이다.

Object타입으로

 


Spring Bean Configuration File

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
		<!-- 자바 어노테이션 기반의 컨피규레이션 설정하겠다는 뜻 -->
		<context:annotation-config></context:annotation-config>
		<!-- @Controller, @Component, Repository, @ service등 
			스프링 컴포넌트 등록할 패키지(멀티 설정)-->
		<context:component-scan base-package="com.yadoc"></context:component-scan>
</beans>

 

yadoc-servlet.xml 파일이고 Spring MVC설정파일 이라는 것.

XML 스키마 설정: Spring Beans, Context, MVC...

 

왜 저렇게 파일을 만들고 어떤 설정들이라는 것인지 이해가 안된다 ㅜㅜ

패키지를 설정해준다는 것과 무언가 여러가지 설정들이라는 것...  다음에 보완해야겠다.


기본적인 흐름은 client 가 요청을 하면 @Controller에 진입하고 그 요청에 대해 작업을 수행 후 뷰로 데이터를 전달한다.

우선 @Controller를 이용해서 클래스를 생성하고 @RequestMapping을 이용해 view의 요청 경로를 지정한다.

요청 처리 메서드를 구현하고 뷰 이름을 리턴한다.

package com.yadoc;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller  
public class AddBmi {
	
	@RequestMapping("/bmi")			
	public ModelAndView add(
		HttpServletRequest request,
		HttpServletResponse response) {

		double i = Double.parseDouble(request.getParameter("t1"));
		double j =  Double.parseDouble(request.getParameter("t2"));
		double k = j/((i*i)*0.0001);
		
		ModelAndView mv = new ModelAndView();
		mv.setViewName("display.jsp");
		mv.addObject("result",k);
		mv.addObject("num1",i);
		mv.addObject("num2",j);
		
		return mv;
	}
}

 

 

@Controller   (이것이 컨트롤러라고 자기 주장 하는 것이다.)

전통적인 Spring MVC의 컨트롤러는 주로 View를 반환하기 위해 사용한다.

  1. Client는 URI 형식으로 웹 서비스에 요청을 보낸다.
  2. Mapping 되는 Handler와 그 Type을 찾는 DispatcherServlet이 요청을 인터셉트한다.
  3. Controller가 요청을 처리한 후에 응답을 DispatcherServlet으로 반환하고, DispatcherServlet은 View를 사용자에게 반환한다.

@RequestMapping

bmi라는 요청에 대한 맵핑된 메서드 이다. jsp의 bmi 요청을 처리한다.

 

 

ModelAndView

Controller의 처리 결과를 보여줄 view와 view에서 사용할 값을 전달하는 클래스이다.

 

HttpServletRequest, HttpServletResponse

WAS는 웹 브라우저로부터 Servlet요청을 받으면

요청할 때 가지고 있는 정보를 HttpServletRequest 객체를 생성하여 저장

웹 브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServletResponse객체를 생성

생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿으로 전달

 

 

mv객체를 생성.

setViewName() 메소드 ("뷰의 경로") 안에 뷰의 경로를 설정한다.

addObject() 메소드 데이터를 보낼 때 사용한다.  ("변수 이름", "데이터 값")

 

 

그리고 return mv;

ModelAndView 객체를 반환한다.

return 이란 메서드의 종료, 값의 반환의 역할을 한다. 메서드를 종료함과 동시에 호출한 부분으로 반환한다.

 

 

 

그렇게 display.jsp가 실행된다.

 

 

 


https://imdsoho.tistory.com/entry/requestsetAttribute%EC%99%80-requestgetAttribute%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C

https://gap85.tistory.com/entry/%EC%95%A1%EC%85%98%ED%83%9C%EA%B7%B8

https://mommoo.tistory.com/60
https://mangkyu.tistory.com/49
https://andamiro25.tistory.com/148

'Spring Framework > spring공부' 카테고리의 다른 글

Spring MVC패턴  (2) 2020.06.14

+ Recent posts