전체 글

· BE/Java
카카오 로그인 https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 카카오 로그인 과정https://developers.kakao.com/docs/latest/ko/kakaologin/js#before-you-begin-process Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com   카카오 로그인 데모 그대로 복사해서 jsp 파일에 body 태그..
· BE/Java
DTO 하나에 여러 정보를 담을 것인가?너무 복잡하지 않은 경우에 좋음클래스 파일이 하나라 파일 자체를 관리하기 편함규모가 커지면 하나의 클래스에 너무 많은 역할이 추가됨 DTO를 여러 개로 나눌 것인가?복잡한 경우에 좋음클래스 파일이 여러 개라 파일 자체를 관리하기 불편함규모가 커져도 각각의 파일만 수정하면 돼서 코드를 관리하기 편함예시쿠팡 상품 상세 페이지를 예시로 들 때 가져와야 될 데이터들을 대충 적어보자면 다음과 같다.상품- 이름- 가격- 원래 가격상품 옵션- 내용리뷰- 별점- 리뷰 수판매자- 이름상품 이미지- 경로다른 상품상품 문의다른 고객이 함께 구매한 상품 위의 데이터들을 모두 하나의 모델에 담는다 ? => 너무 많음 고려해야 될 것DB에서 조회할 때 SELECT문을 몇 번 실행할 것인가 ..
· BE/Java
multipart/form-data 란? HTTP 프로토콜에서 파일 업로드나 여러 종류의 데이터를 한 번의 요청으로 전송하기 위해 사용되는 타입이다. 데이터를 여러 부분(Part)으로 나누어 전송하며, 각 부분은 고유한 헤더와 본문을 가진다.   예제  Submit  input 태그의 name 속성과 데이터들이 ----- 로 구분되어 보여진다.마지막 구분선에서는 boundary 값 뒤에 --를 붙여 데이터의 끝을 표시해준다.--------------------------boundaryContent-Disposition: form-data; name="username"JohnDoe--------------------------boundaryContent-Disposition: form-data; ..
· BE/Java
로그인 기능 코드login.jsp 로그인   UserController.javapackage controller;import jakarta.servlet.ServletException;import jakarta.servlet.annotation.WebServlet;import jakarta.servlet.http.HttpServlet;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import model.User;import ..
· CS/OOP
객체지향 프로그래밍의 5가지 주요 원칙은 소프트웨어 설계의 품질을 높이고 유지보수성을 강화하기 위한 지침이다.SRP, OCP, LSP, ISP, DIP 5가지가 있다. 단일 책임 원칙 (SRP, Single Responsibility Principle) 하나의 클래스는 단 하나의 책임만 가져야 한다. (= 클래스) 목적 : 클래스를 변경해야 하는 이유가 단 하나뿐이어야 한다.장점 : 클래스의 역할이 명확해지고 코드의 가독성과 유지보수성이 향상된다. class Person { void cook(); //요리하기 - 요리사 void plate(); //플레이팅 - 요리사 void order(); //주문하기 - 손님 void pickup(); //픽업하기 - 손님 void eat(); ..
· CS
싱글톤 패턴하나의 인스턴스만 생성하고, 이 인스턴스를 전역적으로 접근 가능하게 만들어 사용하는 디자인 패턴 특징인스턴스가 하나만 존재 : 애플리케이션 전체에서 동일한 인스턴스를 사용글로벌 접근 : 전역적으로 동일한 객체에 접근할 수 있음생성 제한 : 외부에서 직접 객체를 생성하지 못하도록 제한 장점전역 상태 관리 : 하나의 객체를 공유하여 상태를 일관되게 유지할 수 있음리소스 절약 : 하나의 객체만 생성되므로 메모리와 자원을 절약할 수 있음글로벌 접근 : 애플리케이션 전역에서 동일한 인스턴스에 접근이 가능 단점글로벌 상태 관리 문제 : 잘못 사용하면 프로그램이 불필요하게 복잡해질 수 있음멀티스레드 환경에서의 문제 : 올바르게 구현되지 않으면 Thread-safe를 보장하지 못할 수 있음테스트 어려움 : ..
· BE/Java
폴더 구조src├─ main│ └─ java│ ├─ common│ │ └─ DbConnection.java│ ├─ controller│ │ └─ UserController.java│ ├─ model│ │ ├─ dao│ │ │ └─ UserDao.java│ │ └─ User.java│ └─ service│ └─ UserService.java│└─ web └─ view └─ user ├─ login.jsp └─ signup.jsp  MVC 패턴Controller = UserController.javaView = signup.jsp, login.jspModel = User.java..
· CS
Layered 패턴애플리케이션을 기능별 계층(Layer)으로 나누어 설계하는 소프트웨어 설계 패턴 애플리케이션의 복잡성을 줄이고, 유지보수성과 재사용성을 높이는 데 유용하다.주로 MVC 패턴과 함께 사용되며, 대규모 애플리케이션 개발에서 자주 사용된다.    장점역할 분리각 계층이 특정한 책임을 가지므로 유지보수성이 향상된다.재사용성동일한 비즈니스 로직이나 데이터 접근 코드 유연성계층별로 독립적으로 변경 가능Presentation Layer사용자와 상호작용하는 계층데이터를 화면에 표시하거나 사용자의 입력을 처리한다.JSP, HTML, JavaScript, React와 같은 UI 기술  Application Layer (Service Layer)비즈니스 로직을 처리하는 계층Presentation Layer..
· CS
MVC 패턴MVC (Model-View-Controller) 패턴은 애플리케이션을 Model(모델), View(뷰), Controller(컨트롤러) 라는 세 가지 주요 컴포넌트로 분리하여 설계하는 소프트웨어 디자인 패턴이다.  코드의 유지보수성, 확장성을 높이고, 책임 분리를 통해 개발과 협업을 효율적으로 만든다.  Model (데이터)클라이언트가 보내는 무언가. 앱이 포함해야 할 데이터가 무엇인지 정의애플리케이션의 데이터와 비즈니스 로직을 관리한다.데이터베이스와의 상호작용, 상태 정보 관리, 데이터 처리 로직이 포함된다.DAO (Data Access Object)- DB에서 데이터를 CRUD 처리  View (HTML 페이지)클라이언트에게 결과를 알려주는 처리앱의 데이터를 보여주는 방식. 사용자에게 출..
· BE/Java
Dependency 추가 https://mvnrepository.com/ Maven 레파지토리 사이트에서 mariadb 검색MariaDB Java Client 선택    원하는 버전 선택나는 사람들이 제일 많이 다운받은 버전인 3.3.3 버전을 선택했다.    Maven 탭에 있는 dependency 코드 복사  pom.xml 에 붙여넣기 org.mariadb.jdbc mariadb-java-client 3.3.3  dependency 입력 후 pom.xml -> Maven -> Sync Project 클릭 mariadb jar 파일 추가프로젝트를 Tomcat으로 실행하고 있기 때문에, 톰캣이 설치되어 있는 곳에 mariadb를 추가해줘야 한다. ..
셰욘
seiyeon