본문 바로가기

전체 글143

[스프링] MVC 프레임워크 MVC 프레임워크 프론트 컨트롤러 패턴 특징 프론트 컨트롤러 서블릿 하나로 클라이언트의 요청 받음 프론트 컨트롤러가 요청에 맞는 컨트롤러 찾아 호출 공통 처리 프론트 컨트롤러 제외한 나머지 컨트롤러 서블릿 사용x 프론트 컨트롤러 도입1 컨트롤러 인터페이스-> - 회원 등록 컨트롤러, 회원 저장 컨트롤러, 회원 목록 컨트롤러void process(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException; 프론트 컨트롤러 @WebServlet(name = "frontControllerServletV1", urlPatterns = "/front-controller/v1/*") public class.. 2022. 6. 9.
[스프링] 서블릿, JSP, MVC 패턴 서블릿, JSP, MVC 패턴 서블릿 서블릿: 자바 코드로 html 작성response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter w = response.getWriter(); w.write("html~~"); JSP JSP: import: 자바 코드 입력: 자바 코드 출력: MVC 패턴 배경: 너무 많은 역할, 변경의 라이프 사이클, 기능 특화 Model View Controller 컨트롤러: HTTP 요청-> 파라미터를 검증, 비즈니스 로직 실행, 뷰에 전달할 결과 데이터를 조회-> 모델에 담기 서비스: 비즈니스 로직 처리 리포지토리: 데이터 접근 모델: 뷰에 출력할 데이터 담아둠 뷰: 모델에 담겨있.. 2022. 6. 9.
[스프링] 웹 애플리케이션 이해, 서블릿 웹 애플리케이션 이해 웹 서버: HTTP 기반, 정적 리소스 제공, NGINX, APACHE 웹 애플리케이션 서버WAS: HTTP 기반, 웹 서버 기능+애플리케이션 로직 수행,톰캣 Jetty 서블릿: urlPatterns의 URL이 호출-> 서블릿 코드 실행, HttpServletRequest,HttpServletResponse 서블릿 컨테이너: 서블릿을 지원하는 WAS, 생명주기 관리, 싱글톤으로 관리: 최초 로딩 시점, 공유 변수 사용 주의, 서블릿 컨테이너 종료시 함께 종료 JSP도 서블릿으로 변환 멀티 쓰레드 지원: WAS가 처리 SSR(서버 사이드 렌더링): HTML 최종 결과를 서버에서 만들어서 웹 브라우저에 전달(JSP, 타임리프) CSR(클라이언트 사이드 렌더링): 동적인 화면에 사용(Re.. 2022. 6. 9.
인프랩 CTO 이동욱님과의 멘토링(2) 2번째 멘토링 5월 29일 디지털 청년 고민해결단 프로그램의 2번째 멘토링이 진행되었다. 멘토링이 일회성으로 끝나지 않고 최소 2번 진행되는데 이 점이 더 열심히 공부하게 만드는 계기가 되었다. 다음 멘토링까지의 텀이 어느정도 있다보니 이 기간동안 좀 더 발전해서 뵙고 싶은 마음... 2번째 멘토링을 하기전에 슬랙을 통해 다른 취준생분들과 인터뷰했던 내용을 공유해주셨고 공부하는데 참고할 수 있었다. 멘토링은 저번과 마찬가지로 Q&A 형식으로 진행이 되었다. 질문에 바로바로 대답해주시는 걸 보면서 계속 감탄하면서 들었다. 답변을 들으며 그동안 쌓인 노하우가 엄청 많으신게 느껴졌다. 줌으로 진행하는데 마치 개발바닥의 라이브에 직접 참여하고 있는 느낌이 든다. 아직도 믿기지 않는다. 멘토링 하게 된 것에 감사.. 2022. 6. 6.
자바 플레이그라운드 with TDD, 클린코드(4) 4/21 문자열 계산기를 다시 만들었다. 값을 공유할 때 변수에 static붙이고 인스턴스 변수를 쓰지 않으면 메서드에 static 붙인다고 알고 있었다. 그래서 메서드에 static을 다 갖다 붙였다. 뭔가 잘못된 느낌이었다. static쓰니까 객체생성을 하나도 안했다. 나는 인스턴스 변수를 쓰지 않고 있었고 값들은 매개변수로 계속 넘기고 있었다. 이건 객체지향적인 코드가 아니었다. 객체지향 프로그래밍으로 유틸리티 클래스를 대체하자. | Mimul Tech log 유틸리티 클래스를 안써본 사람은 거의 없을겁니다. 유틸리티 클래스가 좋다, 나쁘다는 논쟁꺼리지만, 객체지향의 관점에서 볼때 그래도 생각해볼 꺼리가 된다고 생각해, OOP Alternative to Utility Cl www.mimul.com .. 2022. 6. 4.
스프링 핵심원리 스프링 핵심원리 객체 지향 설계와 스프링 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임 워크 다형성 역할과 구현 구분:공연-역할(인터페이스)-배우(바꿀 수 있음,구현객체) 객체 인스턴스 실행시점 유연하게 변경 클라이언트 변경 x 객체 지향 설계 5가지 원칙(solid) 단일 책임(srp): 하나의 책임-변경의 파급효과 적게 개방-폐쇄(ocp): 확장에 열려있고 변경(클라이언트)에 닫힘(설정자 필요), 할인정책(고정, 정률) 리스코프 치환(lsp): 정확성 유지 하위타입 인스턴스로 바꿀 수 있어야 함(자동차 엑셀은 앞으로) 인터페이스 분리(isp): 특정 클라이언트 위한 인터페이스 여러개 > 범용 의존관계 역전(dip): 추상화(인터페이스,역할) 의존o, 구체화x 스프링 di(의존.. 2022. 6. 1.
HTTP 인터넷 네트워크 IP (인터넷 프로토콜) 역할: 지정한 IP 주소에 패킷이라는 통신 단위로 데이터 전달 패킷 정보: 출발지, 목적지, 전송제어, 순서 한계: 비연결성(대상없음, 서비스 불능), 비신뢰성(패킷소실, 순서), 프로그램 구분(같은 IP) TCP, UDP 인터넷 프로토콜 스택 4계층 애플리케이션 계층: http,ftp 전송 계층: tcp,udp 인터넷 계층: ip 네트워크 인터페이스 계층 애플리케이션(소켓 라이브러리) > os (tcp > ip) > 네트워크 인터페이스 tcp(전송제어 프로토콜) 특징 연결지향-tcp 3 way handshake (가상연결): syn(클라이언트)->syn+ack(서버)->ack(클라이언트)-> 데이터 전송 데이터 전달 보증: 데이터 전송(클라이언트)->응답(서버).. 2022. 5. 31.
[AWS] 배포 흐름 로컬컴퓨터 -> 운영컴퓨터 옮기기 1. 스프링부트 프로젝트 2. 깃허브 업로드 3. 환경세팅 4. 실행 EC2서버 생성 및 고정IP 설정(엘라스틱 ip) 탄력적 ip - ec2연결 하나 무료제공 탄력적 ip 생성 후 사용 안하면 비용발생 배포 자바설치(jdk,jre) github 다운 gradlew 실행권한주기 gradlew로 프로젝트 jar파일로 변경 java로 jar 실행(x) / nohup으로 실행(o) 시간변경 저장소 동기화 sudo apt update 저장소 보기 sudo apt-cache search jdk | grep openjdk-11 자바설치(jdk) sudo apt install openjdk-11-jdk 깃 확인 git --version github 다운 git clone htt.. 2022. 5. 18.