배움 __IL 140

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

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

TIL : git - 1

[명령어 정리한 곳 : https://velog.io/@delilah/GitHub-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C ] I. git 설지 깃 설치하기 II. git 명령어 1. git 수업용 파일 불러오기 강의 지원에서... 2. 명령어 ls : 디렉토리 pwd : 현재위치 q : 종료 git - help : 명렁어들 보기 3. 형상관리 연결형 비연결형 -> git 은 비연결형으로 한다. III. git 하기 1. 초기화 및 커밋 1) git init . 해당 프로젝트 폴더 내 .git 폴더 생성함 2) git add git add * : 하면 모두가 됨 git add ___ : 특정 파일만 됨 git commit - am "메시지 내용" : ad..

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() 가 ..

TIL : 49번째- 230213 [2-2-월]

I. 지난시간 정리 1. 웹 개발 관련 1) 자바는 웹개발과 다른게 없다. 입출력만 다르게 하면된다. 역사적으로 서버는 페이지 만들어주는 것임 (동적인 페이지를 만들어주는) 웹서버 에다가 프로그래밍이 붙은 것이다. 2) 웹서버라는 것이 문서를 주는 것임 프로그램을 실행해서 얘가 만든 문서를 불러와 주는 것, 즉 실행 전에는 문서가 없음 (동적문서) 동적이라 함은 요청할 때 실행할 때를 동적이라고 한다 메모리가 실행할 때 만들어지면 동적 메모리 / 메뉴도 실행? (동적 메뉴) / 페이지 실행(동적 페이지) 동적 문서 만들 때 에는 out.write()로 다 만들지 않음 출력은 IO작업인데, 오래걸리는 작업인데, DB연결을 함 -> 이거 문제임 데이터 가져오는 코드, 출력코드가 섞여있음 화면 고칠 때와 출력..

TIL : 47번째- 230208 [2-1-수]

I. 자바 객체지향 1. 다형성 (1) 의의 다형성은 코드 일부분 분리했다가, 바꿔끼움으로서 다양한 형태를 가지게 하는 것이다. 인자를 일부분 바꾸려고 하지만, 타입이 한정되어있어서 못바꾼다. 그렇다면 이러한 인자를 포함하는 상위타입을 두고, 이를넘겨주면 가능하다. (2) 문제점 1) package com.newlecture.web.poly; public class Program { //원래는 다른 곳에 jar 파일로 있는곳이고, 재사용하는 것이다. static void printIntro(ICTBanner banner){ System.out.println("┌───────────────────────┐"); //특정 교육센터 이름이 들어간 부분을 분리하자 banner.print(); //System.o..

TIL : 46번째- 230207 [2-1-화]

I. SQL 어제 outter join을 했다. inner할줄 알면 가능하다 outter 껴주면 내가 한 데이터에 들어온다 방향에 따라서 '결합'해주고 남은 부분을 null 로 해준다. 두개테이블 충돌하는 경우가 있는데, 이럴때 한정사를 이용해서 어디에 소속되어있는지 밝혀주어야한다. 길어진다 별칭을 쓰자 1. join : 컬럼 결합 (1) 내부조인연습 1) ***count부분 이해가안됨 (해결 : group 으로 한정해서 집계 함) SELECT M.ID, M.NAME, COUNT(N.ID) FROM MEMBER M JOIN NOTICE N ON M.ID = N.WRITER_ID GROUP BY M.ID, M.NAME *로 하면 문제가 발생한다 이런경우 *을 안하고, 하나씩 별도로 ~별 이런걸로 해서 지정..