멀티캠퍼스 JAVA 백엔드 부트캠프/정리

멀티캠퍼스 백엔드 개발자 취업캠프(Java) 입과 9주차 정리

5ein 2023. 4. 3. 23:22

2023.03.27

오늘은 저번주에 진행했던 스프링 설치를 마저하고 에러를 잡았다.

나는 이클립스에서 스프링이 다운되긴 했지만 그뒤에 자꾸 에러가 나 다른방법으로 스프링을 깔게 되었다

다른 분들의 에러를 보면서 똑같은 것을 진행해도 PC환경 등에 따라 정말 다양한 에러가 날 수 있다는 것을 다시 한번 느꼈다. 

 

스프링이 실행되는지 확인하기 위해 프로젝트를 생성하고 jsp파일을 생성해 실행까지 해보았다

스프링은 mvnrepository에서 jar을 다운받을 필요없이 maven 코드를 입력하면 자동으로 다운이 되어 신기했다!

실무에서 대부분 스프링을 사용하기 때문에 maven을 사용한다고 하셨다!

maven코드는 mvnrepository에서 복사 하면되어서 너무 편리했다!

maven옆에 다른 것들도 많았는데 예로 gradle이 있었다 이것은 안드로이드 스튜디오 등에서 사용할수 있다고 하셨다!  

 

스프링 정리문제

1) 스프링을 왜 사용하는가(스프링을 사용하면 편리한 점): 2개 이상 
	(1) 숙련도에 상관없이 좋은 성능의 프로그램 구현가능
	(2) 자바서버프로그램 구조를 고민할 필요가 없이 좋은 구조로 구현 가능하다.

2) 프레임워크란
	프로그래밍 할 때 이미 프레임을 만들어서 제공

3) 아는 프레임워크 종류: 2개 이상
	스프링, 닷넷
4) front관련된 파일들의 종류를 3개 이상쓰고, spring 프레임워크상 위치
	Html, css, js ==> webapp

5) back관련된 파일들의 종류를 3개 이상쓰고, spring 프레임워크상 위치 
	Dao, vo, controller ==> co,.multi.mvc00아래

6) pom.xml파일의 역할 2가지
	- jdk 버전
	- spring 버전
	기타 필요한 라이브러리 설정

7) project facets의 역할 2가지
	 - jdk버전, tomcat설정

8) spring 어플리케이션의 설정 순서
	Project facets -> pom.xml

9) 싱글톤이란, 서버에서 왜 객체를 싱글톤으로 만들어 제공하는가?
	서버에서 객체를 만들 때 하나만 만들어서 계속 사용하는 기법

 

지금까지 우리가 만들어본 jsp 여러가지가(java, css, js 등) 한곳에 구현되어 있어 자바의 응집도면에서는 좋지않은 코드라고 하셨다!


2023.03.28

면접에서 화이트보드에 그림을 그려서 웹프로그램의 동작방식을 설명해주세요. 라고 할수 있대

 

MVC 설계 방법


2023.03.29

스프링 내부 처리 방식

 

DTO VO 같나요?   같습니다.

DTO data 전송할 목적으로 만든 (data transfer object)

== VO (value object) 완전히 같은 !!

 

one(검색)을 했다! 그리고 팀끼리 오늘했던것을 다시 하는 미션을 진행했다!

 


2023.03.30

model 속성으로 전달받은 bag EL 출력한다 --> ex) ${bag.id}

EL: 속성으로 지정한 꺼내서 출력해주세요!.라는 의미

 

위에 적힌 것을 아래 주석처리 것처럼  바꿀수 있음!

쿠키와 세션

쿠키와 세션에 대해 배웠다.

 


2023.03.31

쿠키와 세션

쿠키와 세션을 이용해서 장바구니를 구현해보았다.

 

형변환

예전에 배웠던 형변환에대해 다시 설명을 들었다!

 

4교시에 데이터 저장 데이터 마이닝 & 서버사이드 컴포넌트 관련한 시험을 쳤다!

시험요약정리

- 웹프로그램에서 클라이언트는 브라우저, 내컴퓨터에 브라우저가 3개인데 동일한 서버로 브라우저 3개로 접속하는 경우, 서버는 클라이언트를 3개로 인식

- 웹프로그램에서 서버는 2가지로 구성
	- 웹서버: http요청/응답 처리, 클라이언트와 http통신
	- WAS(Web Application server): 서버에서 자바로 처리해야하는 부분 실행

- 클라이언트측: html(jsp), css, js(--> jquery), img => webapp/resources
- 서버측: java(controller, dao, service, ..) => com.multi.mvc00패키지 아래

- jquery: JS라이브러리($), ajax(페이지를 넘기지 않고, 순서와 상관없이 원할 때 아무대서나 다양한 서버로 통신 가능, 비동기통신(async~~))

-ajax: asynchronous javascript and XML의 약자
	- 현재 jquery에서는 ajax 할 떄 json을 많이 쓴다.
	- {url:"요청서버주소", data:{서버로 보낼 데이터}, success:funtion()성공했을때 처리 내용}

-------------------------------------------------------------------------------------

- http요청
	- get: http의 header부분에 포함되어 주소와 함께 전달
		- <a href="one2?no=2">2번상세페이지</a>
			 : QueryString(쿼리스트링)
		- <form action="one2">
			no:<input name="no" value="2">
		- location.href="one2?no=2"
	- post: http의 body부분에 포함되어 전달
		- <form action="one2" method="post">
			no:<input name="no" value="2">

-------------------------------------------------------------------------------------

- 스프링: 개발할 때 프레임을 제공하는 프로그램(프레임워크)
	- 개발방법: MVC2방법
		- m: model, 특정한 방법에 의해서 처리되는 클래스, JDBC4단계에 의해 처리되는 클래스인 DAO
		- v: view, 클라이언트인 브라우저에 보여지는 역할의 파일, jsp파일만 담당
			- webapp(클라이언트가 직접 호출 가능한 jsp), WEB-INF/views(처리를 다 끝내고 결과를 담기 위한 jsp, 컨트롤러를 거쳐서 호출)
		- c: controller, 서버에서 요청을 받아 어떻게 제어할지를 담당하는 클래스, 
		spring은 frontController가 내장되어 있음. 세부적으로 처리하는 Controller를 구현, 
 		@ReqeustMapping("요청주소"): 요청주소별 처리할 함수(메서드)를 맵핑하는 역할

	- @Component: 싱글톤 만드는 역할, 
	  @Controller: 컨트롤로 등록하는 역할,
	   @Autowired: 싱글톤을 만든 것 찾아서 아래 변수에 그 주소(위치)를 넣어주는 역할(의존성주입, DI, Dependency Injection)

-------------------------------------------------------------------------------------

- JBDC 4단계 : 1) 드라이버설정(커넥터설정),
		   2) DB연결(url, id, pw),
		  3) SQL문 객체 생성,
		   4) SQL문을 db로 전송

- CRUD: create(insert), read(select), update(update), delete(delete) 
	<이 친구들을 SQL에서는 DML이라고 부름>

- db tabel(row, record검색) -> java(DAO), bag(VO)
	- row하나당 bag(vo)하나
	- ORM(Object(java) Relational(rdb) Mapping): 자바와 RDBMS간의 데이터 맵핑

- JSP: <% 자바코드 여러줄 %> : 스크립트릿,
	 <%= 변수 %>: 표현식(출력용)
	- <jsp:useBean> 액션태그, jsp는 서블릿으로 변환되어 처리
		(서블릿 변환 시점: jsp가 처음 호출되었을 때, 코드가 변경되었을 때)	

- 상태정보기술: 쿠키, 세션 <두개의 역할은 같다>
	- 쿠키(브라우저측, 문자열만 저장)
	- 세션(서버측, 모든 데이터타입 저장가능)

 

이후 세션에대해 더 배우고 세션 미션을 진행했다!


기술 면접 문제!

기술면접 기출문제!
기술면접 단골질문!!

IOC가 뭔지 알아요?

스프링방법을 아는가?

자바문법을 아는가?

ajax 사용법을 아는가?

다양한 api사용경험이 있는가?

추가적으로 mongoDB 같은 다뤄봤는가

정형/반경형 다뤄봤는가?

myBatis 다뤄봤는가?

springBoot + JPSA 해봤는가?

추가적으로 ai api , chatbot, 추천 시스템 경험이 있는가