'기타' 카테고리의 다른 글
포트 충돌 날 때 윈도우 Port 확인/제거 (0) | 2021.02.05 |
---|---|
github에 프로젝트 올리기 (0) | 2020.10.21 |
디버깅하는법 (0) | 2020.09.24 |
포트 충돌 날 때 윈도우 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를 반환하기 위해 사용한다.
@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://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 MVC패턴 (2) | 2020.06.14 |
---|