카테고리 없음

스테이지어스 7주차 정리(1)

jjon-jonny 2024. 5. 8. 20:14

backend 개발

 

기초 단계 마지막 주

ㄴ 프론트엔드 / 웹 서버/ 데이터베이스

ㄴ 오늘 배울 내용이 프론트엔드와 데이터베이스를 연결해 줄 내용

 

-백엔드 개발의 중요점

ㄴ 웹 프로젝트의 성능과 무결성은 벡엔드 개발자가 담당함.

ㄴ 프론트엔드 코드는 공개가 되어 있음( 그 어떤 사람이든 수정 가능)

ㄴ 개발 분야에서 가장 동작 시간이 오래 걸리는 일은 db 통신 작업이다.

 

- 백엔드 개발의 역할

1. 프론트엔드와 데이터베이스를 중간에 연결해주는 역할

(프론트엔드의 요청을 해석해서 , SQL 로 바꿔주는 역할 )

2. 프론트엔드로부터 온 요청과 값이 정상적인지 검증하는 역할

 

HTTP 통신

ㄴ 어떤 특징 가짐? 단방향 통신

ㄴ 서버는 수동적인 구조를 가짐

 

만약 채팅같이 먼저 오면 다른 구조가 필요함 프로토콜

 

**백엔드 개발의 변천사

 

-백엔드 언어의 세대

 

1세대 : PHP, JSP , ASP .NET 등

2세대 : Spring ,Nest, Django 등

 

-1세대 시절의 백엔드 개발

ㄴ 프론트엔드 코드와 백엔드 코드를 한 파일에 합쳐서 작성

(웹 퍼블리셔, 웹 개발자 )

ㄴ 백엔드 통신이 일어나고 , 그 일어난 결과로 화면을 구성한다.

ㄴ 다르게 접근해보면, 백엔드 통신이 필요하다면 일단 페이지 이동을 해야한다는 제약 조건

 

-2세대 백엔드 개발

ㄴ 최신 개발은 독립 개발을 함 ( 프론트엔드 프로젝트 1개, 백엔드 프로젝트 1개)

ㄴ 2015년 쯤 부터임

ㄴ 통신하는 구조가 아예 달라짐 ( 페이지 이동 없어도 됨, 요청 보내면 응답 받는걸로 처리 가능)

 

-비교

ㄴ 개발적으로 보나 사용자 경험으로 보나 2세대가 무조건 좋음

ㄴ 1세대 백엔드 언어들은 겁나 불친절함 ( 대신 오류 코드 겁나 친절 )

 

2. 과거를 알아야 미래가 어떻게 바뀔지 예측할 수 있다.

 

정리

ㄴ 절대 내가 수업 때 알려준 것 외에 다른 것을 공부하진 말 것(서브릿 이런거..)

 

**백엔드 개발

 

-jsp 소개

ㄴ 1세대 백엔드 언어 중 한 종류

 

1. 백엔드 요청을 하려면, 페이지 이동이 우선 일어나야 함.

액션형 jsp // 페이지 jsp 두 종류

ㄴ page 와 action

 

2. 이름은 js와 비슷하지만, 문법은 java 와 100% 동일

ㄴ 구글링에 만약 jsp 문법을 좀 찾아볼거다 -> java로 구글링

 

3. 스파게티 코드가 될 위험이 높다.

ㄴ 4개가 한번에 하니까...

 

-connector 설정

ㄴ was의 한 종류인 tomcat  rdb 의 한종류 mariadb

ㄴ 이 둘다 각각 다른 회사에서 개발한 다른 소프트웨어이다

ㄴ 지금 우리는 이 2개가 서로를 알아볼 수 있어야 함.

 

-connector 다운로드 

ㄴ 데이터베이스 홈페이지에서 다운로드

ㄴ 모든 was에 대해서 1개씩 존재함

 

프로세서 개념 찾아보기

 

a tag location href 는 값을 보낼 수 가 없다.

form tag 는 이동하면서 값을 보낼 수가 있다!!

 

그냥 8080 하면 루트 파일로 들어가는 것임

 

submit 은 form tag를 동작시킴

 

2번째 에러코드가 없으면
sql 에러  이다!!

 

 

 

 

 

 

과제 ))))

정규 표현식

예외처리 하기

====>> 최종적
완성해오기!!!!

session 공부해오기
왜 공부하라고 했는지 바로 알 수 있을거에용~

 

 

<%@ page language="java" contentType="text/html" pageEncoding="UTF-8" %>

<%@ page import="java.sql.DriverManager" %>
<%-- 데이터베이스 탐색 라이브러리 --%>
<%@ page import="java.sql.Connection" %>
<%-- 데이터베이스 연결 라이브러리 --%>
<%@ page import="java.sql.PreparedStatement" %>
<%-- 데이터베이스 SQL 전송 라이브러리 --%>


<%-- 값 받아올때는 이것도 필요함!!! --%>
<%@ page import="java.sql.ResultSet" %>
<%-- 데이터베이스 값 받아오기 라이브러리 --%>



<%
    //jsp 문법을 적는 공간

    // 전 페이지에서의 값을 받아오는 것 과정(이 과정은 Delete , Update , INSERT 과정때 필요하다.)
    request.setCharacterEncoding("utf-8"); //안해주면 전 페이지가 준 한글이 깨진다.
    String idValue=request.getParameter("id_value");
    String pwValue=request.getParameter("pw_value");

    //위에서 받아온 값으로 데이터베이스 통신
   
    //데이터베이스 통신
     //여기서 에러시 톰캣 db connector가 없다 이 3개중에 있다.
    //데이터베이스에서는 필수 이다!! 출입구 여는 느낌
    Class.forName("org.mariadb.jdbc.Driver");
    Connection connect = DriverManager.getConnection("jdbc:mariadb://localhost:3306/web","stageus","1234");





    //치고자 싶은 명령어!!
    String sql="SELECT id, pw FROM account WHERE id = ?  AND pw = ? ;";
    PreparedStatement query = connect.prepareStatement(sql);
    query.setString(1,idValue);
    query.setString(2,pwValue);

   

    //db로 전송하기 (UPDATE INSERT DELETE) 때 사용한다
    query.executeUpdate();




    //db로 부터 값 받기 (SELECT 일때 사용)
    ResultSet result = query.executeQuery();
    result.next(); //가져온 Table 에서 row 1개를 읽어 (jsp 문법이라는게 문제)
%>


<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <%-- <p> 아이디 : <%=idValue%> </p> --%>

    <script>
        console.log("<%=idValue%>");
         
        alert="회원가입 성공"
        location.href="mainpage.jsp"
   

    </script>
</body>

 

기본값임!!