도서 정보https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=353716210&start=slayer 단위 테스트의 기술이 책의 최종 목표는 더 견고한 코드를 작성하고 싶은 모든 개발자가 단위 테스트의 정수를 제대로 배우고 모범 사례를 활용하도록 하는 것이다. 이 책은 크게 네 부분으로 나뉘어 있다. 1부에서www.aladin.co.kr 좋은 기회가 생겨서 도서 "단위 테스트의 기술"을 읽고 리뷰를 작성하게 되었습니다.단위 테스트를 처음 접하거나, 좋은 단위 테스트를 작성하고 싶어하는 분에게 책을 구매하는데 앞서 참고가 되었으면 좋겠습니다. 추천 대상*- 프론트엔드의 단위 테스트 방법을 알고 싶은 주니어 또는 백엔드 개발자 - 다른 언어로 테스트 이론 학습했거나, ..
도서 학습 정보 및 자료① 구매 시기 : 2021-04-22② 학습 기간 : 2024-12-23 ~ 2025-01-09 (3주)③ 문제 개수 : 69개 (기본 예제 제외, 심화 문제 21개 + 기출문제 48개) 1. 도서 구매https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=247882118&start=slayer 이것이 취업을 위한 코딩 테스트다 with 파이썬IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년부터 2020년까지의 코딩 테스트와 알고리즘 대회의 기출문제를 엄선하여 수록하였다. 최근 5년간의 코딩 테스트 기출문제www.aladin.co.kr 2. 깃허브 저장소https://github.com/ndb796/python-f..
목차에서* : 다시 읽어 보고 싶은 장** : 스스로 개선 되었으면 싶은 장 3장_코딩만으로는 이제 충분하지 않다이제 자신의 시간을 투자할 사업 분야에 대해 생각할 시간이다. 실천하기1. 비즈니스 담당자와 점심 약속을 잡으라. 담당자들이 일을 어떻게 하는지 이야기를 나누라. 일과 대해 자세히 질문하라. 이야기 나누는 동안 그 일을 하고 싶은 포부가 생기면 무엇을 배워야 하는지, 무엇을 바꿔야 하는지 질문하라. 기술이 그들의 일에 도움이 됐는지(또는 일을 더디게 했는지) 이야기를 나누라. 그리고 이 일을 정기적으로 하라. 2. 회사 업무와 관련된 업계 잡지를 고른다. (..) 회사에는 대부분 업계 잡지 과월호 모음이 있다. 잡지를 하나하나 읽이 시작하라. 모든 내용을 이해할 수는 없겠지만 꾸준히 읽도록 한..
12.1 필드와 setter 메소드에 @Inject 기능 추가현재 생성자 주입만 가능한데, @Inject를 활용해서 필드(field), setter 메소드를 통해서도 DI를 할 수 있도록 기능을 추가한다 필드와 생성자 주입@Service public class MyQnaService { private UserRepository userRepository @Inject private QuestionRepository questionRepository; @Inject public MyQnaService(UserRepository userRepository) { this.userRepository = userRepository }} setter 주입@Controllerpublic cla..
목표✨ (p338)① 레거시 MVC프레임워크와 애노테이션 기반의 새로운 MVC 프레임워크가 동시에 서비스 가능하도록 구현② 인터페이스로 추상화 가능한 부분을 찾아 2개의 프레임워크가 공존 가능하도록 리팩토링 수행 10.1 MVC 프레임워크 요구사항 3단계10.1.1 요구사항 (p335) 아래 RequestMapping 코드를 보면 직접 요청 URL과 컨트롤러를 추가 해야 하는 불편함이 있다. 서블릿과 같이 애노테이션을 활용해 설정을 추가하고 서버가 시작할때 자동으로 매칭되도록 개선해 본다. (힌트: @Controller 애노테이션을 추가하고, 자바 리플렉션을 활용) 10.1.2 자바 리플렉션(p340)Hint① java.lang.Class API의 getConstructors(), getMethods(..
실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic https://github.com/slipp/jwp-basic/tree/step7-self-check GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com자체 점검 요구사항(필수)① 로컬 개발 환경에 톰캣 서버를 시작하면 서블릿 컨테이너의 초기화 과정을 설명하라 (아래 참고) ② 로컬 개발환경에서 톰캣 서버를 시작한 후 http://loc..
실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic https://github.com/slipp/jwp-basic/tree/step4-qna-getting-started GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com 8장 AJAX를 활용해 새로고침 없이 데이터 갱신하기- 이번 장에서는 질문 목록/상세, 답변 목록/생성/삭제 화면 및 기능 구현 후 리팩토링을 수행한다- 책에는 없는 내..
실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic https://github.com/slipp/jwp-basic/tree/step2-user-with-mvc-framework GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com 자바 진영은 데이터베이스에 대한 접근 로직 처리를 담당하는 객체를 별도로 분리해 구현하는 것을 추천한다. 이 객체를 DAO(Data Access Object)라..
실습 프로젝트 저장소실습의 경우 처음에 fork 받았는데, 깃 허브 잔디가 심어지지 않아 기술 블로그 참고(링크)하여 저장소 설정을 변경하도록 함 jwp-basic (6.1)https://github.com/slipp/jwp-basic/tree/step0-getting-started GitHub - slipp/jwp-basic: 자바 웹 프로그래밍 기본 실습자바 웹 프로그래밍 기본 실습. Contribute to slipp/jwp-basic development by creating an account on GitHub.github.com web-application-server https://github.com/slipp/web-application-server GitHub - slipp/web-ap..
4-1. nginx 설치 및 설정 디렉토리$ apt-get install -y nginx$ sudo service nginx start$ netstat -tnlp 서버 아이피 접속시(80포트) nginx default 페이지 확인 가능하다80/tcp 접근 되지 않을 경우 ufw 방화벽 설정 확인해보기 주요 디렉토리 - /etc/nginx/sites-available- /etc/nginx/sites-enabled 참고. 강의 https://www.youtube.com/watch?v=7GlCo6RHBns4-2. nginx 와 tomcat 서버 연동nginx 와 tomcat 연결 설정$ cd /etc/nginx/sites-availabe$ sudo vim jwp-basic# 아래 내용 작성 후 저장 - t..
요구사항-지금까지 구현한 기능을 개발 서버에 톰캣 서버를 설치한 후 배포한다-서버가 정상적으로 실행되고 있는지 톰캣 로그 파일( catalina.out )을 통해 모니터링 한다-쉘 스크립트를 만들어 배포 과정을 자동화 한다 ① 톰캣 서버 설치② 실습 코드 배포③ 톰캣 서버 로그 모니터링④ 쉘 스크립트 통해 배포 자동화 참고. 영상 자료https://www.youtube.com/watch?v=ZsiO27LeW34https://www.youtube.com/watch?v=9Rr4gMRyUtQhttps://www.youtube.com/watch?v=bzM1WL4qdoA1. 톰캣 서버 설치톰캣 디렉토리 구조 - bin : 톰캣 서버 시작/종료, catalina.sh 옵션 설정도 가능 - logs : 톰캣 실행..
요구사항 로컬 개발 환경에 설치한 HTTP 웹 서버를 물리적으로 떨어져 있는 원격 서버에 배포해 정상적으로 동작하는지 테스트한다. 이때 HTTP 웹 서버 배포 작업은 root 계정이 아닌 배포를 담당할 새로운 계정을 만들어 진행한다. ① 계정 추가 및 sudo 권한 할당② 각 계정별 UTF-8 인코딩 설정해 한글 이슈 해결③ JDK, 메이븐 설치④ Git설치, clone 및 빌드⑤ 방화벽 설정(ufw)⑥ 소스 코드 재배포 참고. AWS 사용할 경우 아래 링크 참고 (p83)https://opentutorials.org/module/1946 참고. 영상 자료https://www.youtube.com/watch?v=dWGzApCuF9Mhttps://www.youtube.com/watch?v=N8iLAuAo-..
오래전 기술 블로그, 유튜브 통해 추천받아 알게 된 도서로 회사 도서관에 있길래 대여해서 읽어 보았다🤔 요약👨💻 신입 웹 개발자 뿐만 아니라 연관 직군에 있는 사람에게 권장하고 싶은 도서 였습니다 - (경력 기준) 이해가 쉽게 되고, 다른 사람한테 어떻게 설명하면 좋을지 가이드가 되는 도서 - 방대한 웹 개발에 대한 지식(웹, 프론트, 백엔드, DB, 서버 등)을 풀어 이해 돕기 위해 고민한 흔적이 느껴지는 도서 - 비전공자뿐만아니라 웹 개발 시작하는 주니어에게도 추천하고 싶은 도서 - 2시간 정도 가벼운 마음으로 읽기 좋은 도서 (단, 깊이는 다른 도서에서 찾길) HTML이 프로그래밍 언어가 아니라는 점입니다. HTML은 컴퓨터에게 특정 일을 시킬 수 있는 언어가 아닌 단지 브라우저가 볼 수 있는 문..
클린코드란 성능이 좋은 코드 의미가 명확한 코드 가독성이 좋은 코드 중복이 제거된 코드 나쁜 코드 1) 성능이 나쁜 코드 불필요한 연산이 들어가서 개선 여지 있는 코드 2) 의미 모호한 코드 이해가 어려운 코드 ( ex. 네이밍과 그 내용이 다른 코드 ) 3) 중복된 코드 비슷한 내용이 중복되는 코드 → 버그💣 발생 가능성 증가 나쁜 코드가 나쁜 이유 1) 깨진 유리창 법칙 🔳 나쁜 코드는 깨진 유리창처럼 계속 나쁜 코드가 만들어지도록 한다. 깨진 유리창 하나를 방치해 두면, 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론으로, 사소한 무질서를 방치하면 큰 문제로 이어질 가능성이 높다는 의미를 담고 있다 ( 위키 백과 참조 ) 2) 생산성 저하 🕛 기술 부채를 만들어 수정을 더 어렵게 한다. ( + ..
DispatcherServlet 동작과정 @Controller 인 경우 ① Client(사용자)에서 브라우저 통해 Http Request 보내면 DispatcherServlet이 받음 ② HandlerMapping한테 지시하여 Http Request URI에 맞는 Handler(Controller)를 찾음 ③ 해당 Handler를 실행할 수 있는 HandlerAdapter를 탐색 ④ 찾은 HandlerAdapter를 사용해서 Handler Method를 실행 ⑤ 개발자가 만든 비즈니스 로직을 수행 후 View name(ex. "index")과 model (key, value 형태) 반환받음 ⑥ DispatcherServlet은 ViewResolver 에게 View name전달하여 해당 View 파일을 찾..
HTTP (HyperTexT Protocol) 하이퍼텍스트를 빠르게 교환하기 위한 프로토콜의 일종 즉, HTTP는 서버와 클라이언트의 사이에서 어떻게 메시지를 교환할지를 정해놓은 규칙 80번 포트를 사용하며 HTTP의 구조는 요청(Request)과 응답(Response)으로 구성 https://namu.wiki/w/HTTP HTTP Request Method 서버에 요청시 주어진 리소스에 수행하길 원하는 행동을 Method 로 나타냄 CRUD ('Create', 'Read', 'Update', 'Delete') 에 대해 Http Method를 보통 아래와 같이 구분함 Create = POST/PUT Read = GET Update = PUT Delete = DELETE GET 서버에게 특정 Resourc..