본문 바로가기

Record/boostcourse16

[boostcourse] 3. 웹 앱 개발 예약 서비스 생각해보기 #1 #1 Spring Core 1) 스프링은 프레임워크입니다. 프레임워크와 라이브러리는 어떤 차이가 있을까요? Framework 프레임워크는 뼈대나 기반구조를 뜻한다. 개발할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해주기 때문에 프레임워크를 사용하는 개발자는 프레임워크의 뼈대 위에서 코드를 작성하여 프로그램을 개발하면 된다. 즉, 프레임워크는 완성된 제품이 아닌 완성된 제품을 만들기 위해 개발자를 도와주는 역할을 한다. 이를 소프트웨어적으로 정의하면 소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합인 것이다. Library 라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합이다. 개발자가 어떤 기능을 수행하기 위해서 필요한 기능을 제공해주는 역할을 한.. 2021. 7. 30.
프로젝트B. 방명록 만들기 리뷰 프로젝트A에 이어서 바로 프로젝트B를 진행하였다. 제출해놓고 여행가고 싶은 마음에 급하게 진행했는데 다행히 통과할 수 있었다. 방명록 만들기 프로젝트는 Servlet과 JSP를 사용하여 방명록 목록 조회와 방명록 작성 기능만 구현하면 되는 간단한 프로젝트이다. Comment1 오버라이드한 메소드들에 @Override 어노테이션을 붙여주는 것이 좋다. 해당 메소드가 오버라이드 된 메소드라는 것을 명시적으로 알릴 수 있으며, 컴파일 시 상속한 부모 클래스에 해당 메소드가 있는지 여부등을 통해 예외를 발생할 수 있어 오류를 인지할 수 있기 때문이다. @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) t.. 2021. 7. 28.
프로젝트A. 명함 관리 프로그램 리뷰 부스트코스 웹 백엔드과정을 수강하고 첫 프로젝트 리뷰가 끝났다. 이틀정도 걸렸고 리뷰어님이 꼼꼼하게 리뷰해주셔서 만족스러운 리뷰였다. 코드를 공개하면 안되기 때문에 프로젝트마다 내 코드에 대한 코멘트 위주로 글을 작성할 계획이다. 첫번째 프로젝트는 CLI를 사용하는 간단한 명함 관리 프로그램이다. Java, JDBC, MySQL를 사용하여 구현하였다. Comment1 쿼리문에서 와일드 카드(%)로 시작하는 것을 지양하는 것이 좋다. 해당 컬럼의 index로 지정되어 있다면 와일드카드로 시작하는 경우 index를 사용하지 않아서 쿼리의 성능이 좋지 않다. https://grip.news/archives/1428 MySQL 인덱스 기초 지식 - GRIP.News 효율적인 MySQL 사용을 위해선 인덱스(in.. 2021. 7. 26.
[boostcourse] 2. 웹 백엔드 프로그래밍 기초 생각해보기 #5 #5 scope 1) 회사 관리 프로그램을 만듭니다. 회사 전체적으로 사용되는 특정 정보가 약 1메가 정도 있습니다. 이 정보는 자주 바뀌지 않고, 모든 사원들이 공통적으로 사용하는 코드입니다. 이러한 정보는 어떤 scope로 사용하는 것이 좋을까요? 자주 바뀌지 않고, 공통적으로 사용하기 때문에 애플리케이션 범위 내의 매개변수/속성을 모든 요청 및 세션에서 사용할 수 있는 Application Scope가 적당하다고 생각한다. 4가지 Scope ▶ Application : 웹 어플리케이션이 시작되고 종료될 때까지 변수가 유지되는 경우 사용 ▶ Session : 웹 브라우저 별로 변수가 관리되는 경우 사용 ▶ Request : http요청을 WAS가 받아서 웹 브라우저에게 응답할 때까지 변수가 유지되는 .. 2021. 7. 21.
[boostcourse] 2. 웹 백엔드 프로그래밍 기초 생각해보기 #3 ~ #4 #3 Servlet 1) 동적인 페이지가 필요한 경우는 어떤 것일까요? 동적인 페이지가 필요한 경우는 많지만 입출력이 이루어질때마다 페이지의 구성요소를 다르게 보여줘야하는 경우에 더욱 필요하다고 생각한다. 2) HelloServlet 클래스 파일을 작성할 때 HttpServlet을 상속하지 않았다면 어떻게 동작할까요? package examples; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.ht.. 2021. 7. 21.