배움 __IL/TIL 1기 98

TIL : 60번째- 230228 [2-4-화]

I. 웹개발 1. JDBC (1) 트랜잭션 1) 트랜젝션 각각의 하나는 물리적 명령어이다 계좌이체는 사용자가 원하는 하나의 단위 -> 실행하려면 물리적으로 2번의 업데이트 필요! 서비스는 사용자가 원하는 일 + 이러한 일이 곳 업무단위 => 업무단위 실행하기 위해 물리적으로 여러개 명령어 실행가능 dao 는 CRUD 관련 함수로 구성되어있다 서비스레이어에는 업무라고 함수화 되어있음 업데이트 두번이 깨지면안되는, 즉 두개 다 정상적으로 실행되어야 완료된다. 계좌이체라는 업무단위를 한번에 실행해야되는 업무단위 (작게 진행되는 물리적단위) 트랜잭션 : 업무단위 or 논리적인 명령단위 이러한 업무는 한번에 실행되면 계좌이체가 완벽히 되어야하지만, 그 안에는 자잘하게 물리적으로 엮여야하는데 하나라도 안되면 업무단..

TIL : 58번째- 230224 [2-3-금]

I. 들어가며 프론트 컨트롤러는 스프링부트가 하고 우리가 하는것은 컨트롤러 부분의 pojo 이다! II. 웹개발 1. 뷰 단에 보내주기 즉 컨트롤러에서 출력하기 1) *아웃(풋) 파라미터 : 반환 값을 받기위한 방식 중 하나 일반적으로 함수는 리턴만 반환뿐만 아니라 빈그릇주고, 빈그릇같이 쓰는것 만(Model model)으로 반환이 가능하다. 2) 서블릿 계속 들게(request) 하면 프론트 컨트롤러 의미없어짐 서블릿 아닌 그릇(model)준비해서 담기(addAttribute)! 원룸에서 투룸살면은 방마다 용도 정해놓는것인데, 막쓰면 정한 의미가 없다 3) 스프링이 Model을 이용해서 model에 값을 채우면 전달이된다 package kr.co.rland.web.controller; import or..

TIL : 57번째- 230223 [2-3-목]

I. 들어가며 지난시간 STS 설치했음 II. 스프링 setting 1. 프로젝트 만들고 실행하기 (1) 프로젝트 만들기 spring boot에서 spring starter project 를 누르면 된다 (2) 실행하기 1) 다시 main함수가 생겨났다! 기존에는 톰캣이 나를 호출(외장형)했는데, 이제 내가! 톰캣을 호출(내장형)해 다음 코드와 같이 톰캣을 호출할 수있다 (톰캣은 내가 사용!!) 하나의 도구로 사용이 가능하게 되었다 2) 톰캣을 이제 구할 필요도 없고 //1번방법 리플렉션 방식으로 DI(스프링MVC) 주입 SpringApplication.run(Rlandboot3Application.class, args); //2번방법 커스텀 SpringApplication app = new Spring..

TIL : 56번째- 230222 [2-3-수]

I. 웹개발 의존성관리도구 What (정의) : 외부 라이브러리를 사용관리하기 위 한 도구이다. 즉 프로젝트와 해당 라이브러리간 상관관계를 용이하게 하기 위함이다. Why (존재이유) : 외부라이브러리는 업데이트 등으로 version up이 되어서 라이브러리를 교체해주는 과정에서 휴먼에러가 발생한다 본 도구를 이용하면 pom.xml 등에서 한줄로 간단하게 해결이 가능하다 결국 불필요한 공수가 줄어든다. (시간절약, 안전성) How (방법) : pom.xml (Project Object Model) 에 프로젝트에 필요한 라이브러리를 정의한다. 메이븐은 네트워크를 이용해서 프로젝트에 해당 라이브러리를 주입시킨다. e.g. (예) : Maven, Gradle, Ant 1. Maven 이란 (1) 프로젝트 빌드..

TIL : 55번째- 230221 [2-3-화]

I. 들어가며 모든 것은 컨트롤러가 있고 다 작성가능해 컨트롤러는 분리하면 이제 POJO컨트롤러가 돼! 서블릿흔적은 프론트컨트롤러가 돼! 5가지 (쿼리스트링, 폼 : get, post), page, cookie, session Session 사용목적?은 사용자가 요청결과들을 유지하고싶을 떄 써! 이 저장소를 쿠키가 대신할수있어 그런데 세션장점은? 사용자 특성을 타지않아!! 사용자가 쿠키설정해서 했기때문이야 사용자의 동의가 필요한 상태뿐만아니라, 저장소는 클라이언트야 사용자 특성을 쿠키 장점은? 원하는 경로, 원하는 기간을 정할수있다. II. 웹개발 1. 쿠키 (1) 쿠키값 보기 list3 실행 후 list2를 실행하면 다음과 같은 결과가 나온다 첫번째 줄 : session 의 value 두번째 줄: Co..

TIL : 54번째- 230220 [2-3-월]

I. 프로젝트 1. 피드백 II. 웹개발 1. 들어가며 1) 왜 분리하려고 함? 프론트컨트롤러 두면 그냥 컨트롤러는 순수 자바로 두고 싶어서 매개변수로 입력을 받고, 리턴으로 출력하는 함수형태를 받고 싶어함 즉 프론트컨트롤러는 서블릿 / 컨트롤러는 순수자바 이렇게 하려면 서블릿을 몰아주자 다 떼어내면 컨트롤러는 출력으로 JSP를 떼어내고, 입력은 프론트컨트롤러를 뗴어내면 이제 컨트롤러는 자바만 남는다. 2) 서블릿으로 사용자 입력을 받는 방법을 우리는 찾고있다. 3) 왜 프론트 컨트롤러 왜 또 나왔어 대체!!! 앞으로 뺴는 이유는? 서블릿을 베어내기 위해서! 첫번째 입력부분을 잘라내고, 두번째 포워딩위한 디스패처 부분을 잘라내기 (pojo class : Plain old Java object) -> 프론..

TIL : 53번째- 230217 [2-2-금]

I. 지난시간 복습 어제 드디어 코드를 나누었다 컨트롤러에 서비스와 다오를 분리했다 실행결과는 동일! 나누는 필요성!!을 느끼는 것이 중요하다 (1) controller 에서 Service를 분리하고, 추가로 dao 까지 분리한 연유? 1) -퀴즈 Q. 컨트롤러에서 빼버린 것은 무엇을 뺀 것? 어떤 역할? : 서비스 다시말하면 업무자가 하는 역할인 업무 빠진 것이다. 컨트롤러 만드는 사람은 더이상 업무를 몰라도 된다 Q. 그러면 컨트롤러는 업무를 몰라도 되는데, 이 경우 컨트롤러가 하는 역할은? 이전에 뷰랑 컨트롤러(서비스, 다오) 모두 다 한 곳이 있자나! 그런데 뷰를 처음에 자르고, 추가로 컨트롤러에서 서비스를 또 잘라냈자나 사용자가 아니라 개발자인 나를 위해서자나!! 왜 했어? - 동일한 질문 : ..

TIL : 52번째- 230216 [2-2-목]

I. 웹개발 1. 선수과목 기업형의 어플리케이션 구조에 맞추어서 만들자. 과거와 달리 이제 Spring이 메인이고, JSP가 옵션이 되었다. 특히 spring boot에서! jsp 빠지나, 스프링에서 코어가 서블릿임 지금까지 JSP배웠고 , 스프링부트에서는 Thymeleaf가 메인이다. Dao 가있으면 Menu 등이있다. update함수가 있고 이 경우 query 문을 실행 함 프레임워크를 이용하면 geter setter 를 자동으로 만들어주고, DB쿼리문을 자동으로 만들어준다 2. 컨트롤러 반복하고, 복잡하고, 중복을 잘하고있는 코드이다. (1) 분리하기 1) 지금까지 컨트롤러에는 입출력과 결과물이 상존해 있다. 그러나 이것을 분리할 필요가있다 입출력 : View & mdel 결과물 : DB 관련 리..

TIL : 51번째- 230215 [2-2-수]

I. 들어가며 항상 포커스는 나누어지는데에는 이유가 있다. 나누는 것은 부담이 있다. 우선 뷰를 나누어서 뷰를만들 때 서블릿을 만드는게 아니라 JSP에대해서 재스퍼이용해서 만든다 JSP에 자바코드 포함돼어서 자바개발자가 손대게 됨 난이도가 그렇게 높지도 않은데, 표기법이 좀 더 정적이며 구조적인 표기법인 언어를 쓰는것이 바람직하다 언어를 생각해보자 프로그래밍언어들은 C HTML 뿐만 아니라 JSTL HTML CSS 등도 그러하다 이 둘은 어떤차이가 있을까? 언어는 절차지향언어 구조지향언어로 나누어진다 언어는 어휘(명령어) + 규칙(방법) 이 있는 명령어 집합을 의미한다 HTML 은 컨텐트를 구조화 하는 언어이다 CSS 는 구조적 언어가 아니고, 스타일 언어이다. JSTL 은 라이브러리라서 언어라고하기 애..

TIL : 50번째- 230214 [2-2-화]

I. 웹개발 1. 제스퍼 (1) 들어가며 1) 양쪽다 서블릿인데 이중에서 어떤것이 효율적일까? 왼쪽이 효율적이다. 그래서 오른쪽은 알바를 쓰자 알바의 이름은 제스퍼라고 한다(톰캣이 명명함) 2) 메뉴 목 번호 이름 가격 1 ì•„ë©”ë¦¬ì¹´ë ¸ 5000 2 카페라떼 5000 3 ì¹´í‘¸ì¹˜ë ¸ 5000 실행하면 잘 뜨게끔 해야한다 (2) 제스퍼의 결과 1) 언제 서블릿만들어짐? 확장자jsp에 대한 요청이 들어오면 톰캣이 재스퍼를 깨움, 만약에 없으면 내가 일을 안시켜서 없을 수있음 work 가 작업방이다 톰캣이 재스퍼에게 시켜서 jsp 파일 파싱하여 ---jsp.java로 컴파일한다. 그 결과 html 문장에 자동으로 out.write() 가 ..