본문 바로가기

전체 글38

Connection Pool 이해하기 1. JDBC Driver 자바로 웹사이트를 만들때, 데이터를 다루기 위해 DB와 자바를 연결해야 한다. 자바 어플리케이션과 DBMS(DataBase Management System)는 서로 다른 시스템이기 때문에, 중간에 어댑터를 사용해서 상호 연결하여 사용한다. 이때, 자바 프로그램의 요청을 DBMS가 이해할 수 있도록 ( 클라이언트 사이드 어댑터 역할 ) 각 DB는 JDBC 드라이버를 제공한다. 2. 데이터베이스 커넥션 풀 (DBCP) DB 커넥션 DB를 사용하기 위해 DB와 애플리케이션 간 통신을 할 수 있는 수단 DB Connection은 Database Driver와 Database 연결 정보를 담은 URL이 필요함 사용자가 요청할때마다 커넥션 객체가 생기면 서버에 과부하가 걸린다. 이를 방지.. 2023. 12. 14.
웹 개발 Vanilla JS 사용 이유 장점 경량성(Lightweight): 프로젝트가 가볍고 초기 로딩 시간이 단축될 수 있다. 학습 곡선(Learning Curve): 프레임워크 없이 직접 JavaScript를 사용하면 학습이 더 쉽다. 유연성(Flexibility): 개발자는 필요한 기능을 직접 구현하며, 유연성을 확보할 수 있다. 커스터마이징(Customization): 프로젝트를 자유롭게 커스터마이징할 수 있다. 성능(Performance): 일부 상황에서는 성능을 최적화할 수 있다. 단점 구조화의 부족: 프레임워크 없이 개발할 경우 코드의 구조화와 모듈성이 부족할 수 있다. 유지보수 어려움: 큰 규모의 프로젝트에서는 유지보수가 어려울 수 있고, 코드의 복잡성이 증가할 수 있다. 재사용의 어려움: 일부 기능을 처음부터 구현하려면 시간.. 2023. 12. 13.
[Java] Spring MVC와 레이어드 아키텍처에 대한 정리 1. MVC 패턴 Model - View - Controller 소프트웨어 개발에는 디자인 패턴이라는 개념이 있다. 필요한 기능에 대한 코드를 무턱대고 만드는것이 아니라, 일정한 형식이나 패턴에 맞게 코드를 만들어서 기능을 구현해야 한다. 이를 '관심사의 분리'라고 한다. 관심사가 분리되면 각 기능별 수정이 필요할때, 전체 코드를 고칠 필요 없이 해당 관심사에 관련된 코드만 수정하면 된다. 웹 사이트 개발을 백엔드(서버) / 프론트엔드(클라이언트)로 나누면, 백엔드 개발자가 Java의 Spring / Spring boot 프레임워크를 사용할때 주로 MVC 패턴을 활용한다. 모델 (Model) - 데이터 담당 계층 뷰 (View) - 사용자가 보는 인터페이스(UI) 담당 계층. - 모델이 처리한 데이터를 .. 2023. 12. 6.
[Java] JWT로 자동 로그인 기능을 위한 API 구현하기 * JWT란? JWT = JSON Web Token JWT는 웹 애플리케이션 간에 정보를 안전하게 전송하기 위한 표준 방식 중 하나로, 토큰 기반의 인증 시스템에서 보편적으로 사용된다고 한다. egov환경에서 백엔드 개발 중 API 구현 요구사항을 통해 처음 알게되었다. 내용은 페이지 안에서 버튼을 클릭하면 링크를 통해 다른 사이트로 넘어가야하는데, 이때 넘어간 사이트에서도 같은 사용자 정보로 자동 로그인이 되도록 구현하는 것이다. 1. 서버 : 사용자ID, 비밀번호를 JWT로 base64로 인코딩한 값을 return하는 API 구현 2. 클라이언트 : 해당 API를 호출하여 응답결과의 JWT토큰 값을 decoding 해서 자동 로그인 기능을 구현 * 구현 과정 1. Maven 종속성 추가 pom.xml.. 2023. 11. 17.
eclipse UI 아이콘 확대 설정 4K 모니터에서 이클립스를 실행했더니 폰트 크기만 조절이 되고 아이콘이랑 폴더 경로는 확대가 안돼서 찾아봤다. 1. eclipse.exe가 설치된 폴더로 들어가면 eclipse.ini 파일이 있다. 2. eclipse.ini 파일을 열고 맨 밑에 코드를 3줄 추가한다. -Dswt.enable.autoScale=true -Dswt.autoScale=200 //숫자로 원하는 크기를 조절하면 됨 -Dswt.autoScale.method=nearest 3. 저장 후 재실행해서 확인한다. 2023. 2. 21.
[PostgreSQL] 인덱스 생성하기 1. 현재 테이블에 인덱스가 있는지 확인하기 SELECT * FROM pg_indexes WHERE tablename = '테이블이름'; 2. 인덱스 만들기 CREATE INDEX 인덱스이름 ON 테이블이름 (컬럼이름); 3. 인덱스 삭제하기 DROP INDEX 인덱스이름; 2022. 8. 25.
728x90