목록Study/Java & Kotlin (46)
Hayden's Archive
관련 포스팅 : 파이썬에서 파이썬에서 openpyxl로 엑셀 읽기 & 쓰기 [Python] 파이썬에서 openpyxl로 엑셀 읽기 & 쓰기 참고 : 파이썬 엑셀 쓰기 라이브러리 비교 참고 : 큰 엑셀 파일 내용 읽기 파이썬으로 엑셀 파일을 쓸 수 있는 라이브러리는 많다. 그 중에서도 가장 많이 쓰이는 openpyxl 라이브러리를 써볼까 한�� hayden-archive.tistory.com xls, xlsx 와 같은 엑셀 파일을 파이썬으로 입출력하는 것은 실습했는데 스프링 프로젝트에서 쓰려면 자바로도 입출력하는 것이 필요하다. 그래서 Apache POI를 사용해서 자바로도 실습해보겠다. poi.apache.org/index.html 위 공식 홈페이지에서 다운 받을 수 있다. 하지만 난 스프링 프로젝트에서..
1) 이클립스 설치 참고 : coding-factory.tistory.com/57 이클립스 홈페이지에서 이클립스 압축 파일 다운 ( www.eclipse.org/downloads/ ) 압축을 풀고 eclipse-installer 폴더 더블클릭 eclipse-inst 실행 HTML 과 JSP 그리고 tomcat 서버까지 고려해서 Enterprise로 다운로드 실행! 잘 돌아감. 아래 화면은 테마를 다크로 바꾼 것~ 2) 아파치 톰캣 설치 참고 : 우분투에서 Apache 완전 삭제 방법 dreamtip.tistory.com/6 linuxize.com/post/how-to-install-tomcat-9-on-ubuntu-20-04/ 을 참고하여 설치 3) STS 설치 스프링을 위한 STS를 설치한다. spri..
* Summary 하나의 bean은 하나의 객체와 같음. bean 태그에는 필수속성 2개가 있음. id와 class class에 FQCN을 쓰고, id에는 인스턴스명을 씀. 주문서를 보고, 주문서대로 객체를 만들고 객체를 보관하고 있는 클래스가 DI Container인 것. * 폴더 구조 Dice.java (인터페이스) package spring.service.dice; public interface Dice { void selectedNumber(); int getValue(); } DiceAImpl.java (DiceBImpl.java, DiceCImpl.java도 거의 동일) package spring.service.dice.impl; import java.util.Random; import spr..
(이클립스를 가동해서 Spring을 하려면 STS(Spring Tool Suite)를 연결해야 함. 그런데 지금 쓰는 이클립스 버전이 높고 호환이 잘 안 돼서 STS를 가지고 있는 이클립스를 설치하였음.) 폴더 구조 이클립스에서 Dynamic Web Project를 만들 건데, 기본적으로 있는 src 폴더를 Remove 하고 아래와 같은 큰 줄기 3개를 만들겠음. (모든 폴더는 이 세 가지 폴더 안에 들어가게 됨.) java 폴더 외에 resources 폴더에는 Meta Data(특정한 정보를 상수값으로 가지고 있는 파일)를 넣겠음. Test 클래스는 따로 구분.(~Test, ~AppTest로 끝나는 클래스) src 폴더를 다각화 시킬 것. src 폴더 안에는 클래스만 넣는다. test는 그저 실행 파일..
Spring Framework에는 Spring MVC Fattern, Spring DI, Spring JDBC, Spring AOP, Spring Security 등 여러가지가 포함되어 있음. 이렇게 여러개의 모듈들이 합쳐진 것이 통틀어서 Spring Framework임. 하나하나가 완벽한 Component이므로 꼭 Spring에서 제공하는 거 다 안 써도 됨. 다른 거 끼워서 쓰면 됨. Spring JDBC 현업에서 거의 안 씀. 대신 JPA, MyBatis(MyBatis의 이전 버전은 IBatis)를 씀. 일본에서는 Spring JDBC를 많이 씀. Spring Framework에만 집중하지 말고 Framework란 무엇인가....? -> 회사에서 어떤 Framework를 쓰든 적응할 수 있어야 함...
3.1은 web.xml을 선택적으로 만들 수 있다.(Generate web.xml deployment desciptor을 선택적으로 체크) web.xml이 없으면 자바 코드에다가 하는데 Annotation으로 한다. 개발자 입장에서는 Annotation 구조로 하는 게 편하다.(주로 SI 업체) 대기업의 관리자, 유지, 보수하는 입장에서는 web.xml로 만들어주는 게 좋다.(주로 SM 업체) 서블릿 annotation에서 load-on-startup 처리 참고 https://dololak.tistory.com/737 [서블릿/JSP] 톰캣(서블릿 컨테이너) 시작시 Servlet 초기화 되도록 설정하기 참고글 [서블릿/JSP] 서블릿의 초기화 과정 및 초기화 방법 [서블릿/JSP] init() 메서드를 ..
MVC(Model-View-Controller) 패턴 : Model(DAO와 VO) & View(JSP) & Controller(Servlet) 서블릿은 앞에서는 화면과 손 잡고, 뒤에서는 DAO와 손 잡는다. 1. 서블릿이 제일 먼저 클라이언트로부터 폼값을 받는다. 2. 폼값을 바탕으로 VO 객체를 생성한다. - 폼값 3개면 VO의 필드 3개, DB 테이블 컬럼 3개. - id로 회원 검색하는 경우 id 하나 밖에 없으니까 이 과정 패스. 경우에 따라 다름. 3. DAO(이 때 DAO는 싱글톤) 리턴 받고 Business Logic을 호출 → DAO가 DB의 데이터를 조작하거나 DB로부터 데이터를 받아온다. - 예: registerMember(vo), getMember(id) - 이에 따라 DAO가 D..
페이지 이동을 네비게이션이라고 함. Web 페이지 이동 1. Forwarding(포워딩. 앞으로 간다. 제일 많이 씀. 거의 90%) 2. Redirect Forwarding 방식 - 요청하고 응답하고, 요청하고 응답하면 첫번째 요청이랑 두번째 요청이 전혀 관련 없는 남남. 이걸 Stateless한 protocol라고 함. - 원래는 요청 2번, 응답 2번 해야 하는 것을 요청 1번, 응답 1번으로 줄일 수 있음. - 포워딩을 하게 되면 응답하지 않고 서버상에서 다이렉트로 이동함. - 그렇게 되면 클라이언트로부터 받은 폼값을 그대로 가져가게 됨. ServletRequest에 저장한 객체도 없어지지 않고 JSP로 넘어가서도 쓸 수 있음. 그리고 나서 응답하면 죽으니까 메모리 효율성 뛰어남. 이 경우에는 H..
Attribute : 서버상에서 데이터(개체)를 보관하는 저장소. -보관할 때 Binding : setAttribute(" ", object) //키는 String으로 밸류는 객체로 들어감. -찾아올 때 Look-up : getAttribute(" ") //키로 찾아옴. Attribute 총 3가지가 있음. -> 용도에 따라 적절하게 사용해야 함. : 모두 setAttribute(), getAttribute가 있음. : 동일한 메소드가 서로 다른 객체에 있을 때는 이름, 기능이 똑같더라도 뭔가 다른 점이 있음. : 데이터가 보관되는 scope가 다름. 데이터가 저장되는 유통기한이 다름. - ① ServletRequest : WAS 가동하자마자 만들어짐. 서버 꺼지기 전까지 저장함. 모든 서블릿들이 공유할..
- 요청을 하면 폼값을 받고, 응답을 하면 페이지를 돌려줘야 하는데 이 때 영어는 깨지지 않지만 한글은 깨짐. - 따라서 양방향 한글 인코딩 처리가 필요하다. - 한글 처리부터 하고 폼값 받아와야 하고, 한글 처리부터 하고 응답해야 한다. - 따라서 service() 메소드에 다음 코드를 포함시킨다. request.setCharacterEncoding("utf-8"); //요청 관련 인코딩 처리 response.setContentType("text/html;charset=utf-8"); //응답 관련 인코딩 처리 - 그런데 filter를 사용하면 서블릿을 작성할 때마다 번거롭게 위 코드를 적어주지 않아도 된다. - Filter의 원리 필터를 만들어주고 컨테이너가 알아들을 수 있게 등록해줘야 함. 필터 뒤..