2022/11/1 (화)
(1) 검색 쿼리문 - LIKE 절 및 String Operation인 %, _를 활용한다. (LIKE절은 WHERE절에서 주로 사용된다)
예) 특정 column(변수명 - field)에서 특정 word가 포함된 검색 집합을 받아오도록 JDBC 인터페이스를 활용해 보자.
String sql = "SELECT * FROM 테이블명 WHERE " + field + " LIKE ?";
...
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, "%"+word+"%");
...
column(field)를 ?(placeholder)로 설정하지 않은 이유는 st.setString()으로 field 값을 넣을 시 ""안에 값이 들어가기 때문이다.
(2) 아직 join을 활용하지 않아 관계형 DB에 대해 깊게 배우진 못했으나, DB에서 하나의 table을 다룰 때
table - entity로서 해당 table class 생성
- table 내의 요소들 CRUD할 수 있는 service class 생성
- UI 나타내는 console class 생성
→ 세 클래스를 바탕으로 실제 프로그램 실행하는 메인 클래스 생성
으로 구현할 수 있다는 것을 학습했다.
2022/11/2 (수)
(1) 본격적으로 자바 웹 프로그램을 개발하기 위해서는 Servlet을 배워야 한다.
하지만 Servlet만 활용하면 HTML 코드 출력문제가 나타나기에 우리는 JSP도 배워야 하고,
→ JSP 활용에서도 '스파게티 코드'문제가 발생할 수 있기에
→ 최종적으로는 JSP MVC 패턴에 대해 학습해야 한다. (더 나아가 Spring MVC)
(2) 프로그램에 이분법적 사고를 적용하면 → "단 2대의 컴퓨터만 있어도 인터넷을 할 수 있다!"
- 정보를 요청하는 "client"
- client의 요청을 바탕으로 정보를 반환하는 "server"
해당 이분법적 사고를
- web에 얹으면 web client(web browser) ↔ web server
- game에 얹으면 game client ↔ game server
가 되는 것이다.
(3) 웹 기반 프로그램이 만들어지기 전에는 "모든" 클라이언트 프로그램을 업데이트(or 재설치)해야 하는 것에 큰 부담이 있었다.
하지만, 웹 기반 프로그램에서는 web browser를 사용하기 때문에 해당 한계에서 벗어날 수 있었다.
2022/11/3 (목)
(1) web browser가 정보를 요청하면 web server는 정적 페이지(항상 동일한 페이지)를 반환한다. 이는 web server가 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환하기 때문이며 .html, .css, .jpeg 파일 등이 있다.
(2) 항상 정적 콘텐츠만을 제공할 수 없기에 동적인 콘텐츠를 제공하기 위해 WAS(Web Application Server)가 만들어졌다. WAS는 동적 콘텐츠 제공뿐만 아니라 DB조희, 트랜잭션 관리 기능 등을 수행한다.
[출처]
https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html
[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog
Step by step goes a long way.
gmlwjd9405.github.io
2022/11/4 (금)
(1) tomcat 9 설치하기 - M1 환경에 맞게
맥북(Mac OS) M1 톰캣 설치하기
맥북(Mac OS) M1 환경에서 톰캣 서버를 구현해봅니다.
velog.io
- tomcat 실행 : tomcat 디렉토리 / bin 폴더 / ./startup.sh
- tomcat 종료 : tomcat 디렉토리 / bin 폴더 / ./shutdown.sh
cf) finder에서 경로복사 : command + option + c
- tomcat web server 예제
→ tomcat 디렉토리 / webapps / ROOT 에 test.txt 파일 저장
→ tomcat 실행 후 localhost:8080/test.txt 로 해당 파일 불러오는지 확인
→ 즉, web server는 특정 디렉토리에 미리 저장되어 있는 파일을 불러오는 것이다.
2022/11/5 (토)
(1) tomcat 디렉토리 / webapps / ROOT 에 하위 디렉토리를 두며 개발을 이어나갈 수도 있지만, 규모가 큰 웹에서 이 방식은 비효율적이다. 그래서 개발자가 정한 위치에 웹 어플리케이션을 생성한 후 그 위치를 server.xml (tomcat 디렉토리 / conf 에 위치)에 등록하여 톰캣을 실행하는 개발 방식이 있으며 server.xml에 등록한 웹 어플리케이션을 Context 라고 한다.
(2) 개발할 디렉토리 생성 후 server.xml에 path를 추가한다.
→ servel.xml 실행
→ HOST 태그 아래에 Context 태그 활용
<Context path="경로" docBase="참조할 웹 어플리케이션의 디렉토리 위치" />
→ 단, "tomcat을 재실행 해야 한다"
→ "localhost:8080/경로/실제 디렉토리에 저장된 파일" 로 요청하기
→ Context 태그에 privileged, relodable 등의 추가 설정이 있다. 추후 학습하기
(3) 하지만, 위는 tomcat의 버전이 올라가면서 지양해야 하는 방법이 되었다. Context 추가 시 서버를 재실행 해야 하기 때문이다.
따라서 tomcat 디렉토리 / conf / Catalina / localhost / 디렉토리에 Context 파일을 추가하는 방법을 활용하자.
'나에 대한 기록' 카테고리의 다른 글
[독서 기록] 스프링5 프로그래밍 입문 - 최범균 저 (5) | 2023.01.29 |
---|---|
[기록] 1월 둘째 주 질문 정리 (1) | 2023.01.16 |
[기록] 매일 코딩하기 - 11월 셋째 주 (Servlet 출력-입력 형식, 서블릿 필터, 입력 데이터 배열로 받기) (1) | 2022.11.14 |
[기록] 매일 코딩하기 - 11월 둘째 주 (Servlet 기초) (1) | 2022.11.11 |
[기록] 매일 코딩하기 - 10월 말 (1) | 2022.10.30 |