전체 글

혜+개발+아기 혹은 혜+발아기. 응애 웹 개발자
처음에 이클립스에서 Dynamic Web Project를 생성하고 나면, 파일 구조가 아래 사진과 같이 되어 있다. src/main/java 폴더에는 서블릿이 들어 있어야 한다. 브라우저는 webapp 폴더에서부터 접근을 하는데, webapp는 정적 웹 프로그램이 들어 있는 곳이다. html, css 등으로 이루어진 파일이 들어 있으며, 프로그램 기본 주소와 매칭된다. webapp 하단의 WEB-INF는 웹 서버가 사용하는 파일이 들어있는 중요한 디렉토리이다. 따라서 외부에서 곧바로 접근할 수 없게 되어 있다. 그런데, 우리가 작성한 서블릿은 /WEB-INF/classes 디렉토리에 컴파일 된다. 서블릿 파일은 클라이언트에 서비스 하려고 만든 것인데, 클라이언트가 직접 접근할 수가 없다니! 👉 따라서 w..
1. B-tree - 정의 데이터가 정렬된 상태로 유지되어 있는 트리로 일반적인 이진 트리와 비슷하지만 노드 당 자식 노드가 2개 이상 가능한 트리 더보기 트리 관련 용어 노드: 사각형으로 표시된 한 개의 데이터 루트 노드: 가장 상단의 노드 브랜치 노드: 중간 노드 리프 노드: 가장 아래 노드 - 특징 : 균일성, 균형트리, 정렬된 상태 균일성 어떤 값에 대해서도 같은 시간에 결과를 얻을 수 있음 트리 높이가 다를 경우, 약간의 차이는 있지만 O(logN) 균형트리 루트로부터 리프까지의 거리가 일정한 트리 구조 성능이 안정화되어 있음 처음 생성 당시는 균형 트리이지만 갱신이 반복되면 서서히 균형이 깨지고, 성능도 약화됨 정렬된 상태 항상 정렬된 상태로, 특정 값보다 크고 작은 부등호 연산에 문제가 없음..
1. 인덱스란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 👉 index는 데이터의 주소값을 저장하는 자료 구조. index를 활용해서 빠르게 원하는 데이터를 찾을 수 있음 WHERE절에 사용할 컬럼에 대한 효율화라고 볼 수 있음 2. 인덱스의 필요성 - table에 index가 걸려 있지 않다면? SELECT * FROM customer WHERE first_name = "Jeongyoon"; 👉 원하는 데이터를 찾고 싶을 때 table 전체를 full scan 해야 함 full scan이란? row를 하나씩 모두 확인하는 것을 의미함 시간복잡도는 O(N) 시간이 오래 걸리기 때문에 서비스에 좋지 않은 영향을 끼침 -table에 index가 걸..
1. GET 방식 : 입력과 조회 사용하는 경우 원하는 데이터 조회 사용자가 입력할 수 있는 화면 - 태그와 GET 방식 아래는 webapp 하단의 calc 폴더 안에 있는 input.jsp 코드이다. SEND 태그를 이용해서 사용자가 입력하는 내용들을 전송하는 용도로 사용한다. 프로젝트를 실행하고 브라우저에 'calc/input.jsp' 주소를 입력하면 화면을 GET 방식으로 볼 수 있게 된다. SEND 버튼을 누르면 해당 주소를 다시 호출하게 된다. 화면상의 결과는 같지만 주소창의 내용은 ?num1=&num2=가 붙어 있게 변경된 것을 볼 수 있다. SEND 버튼의 type이 submit으로 지정되어 있는데 이 경우 버튼을 클릭하면 태그 내에서 사용자가 입력한 값을 태그의 name 속성값과 함께 전송..
서버 사이드 프로그래밍이란? 서버 쪽에서 프로그래밍을 통해 데이터를 처리할 수 있도록 구성하는 것 1. 개발 시 고려해야 할 점 동시에 여러 요청이 들어온다면 어떻게 처리해야 하는가? 서버에서 문제가 생기면 이를 어떻게 처리해야 하는가? 어떤 방법으로 데이터 전송을 최적화할 수 있을까? 분산 환경이나 분산 처리와 같은 문제들은? 서비스를 새로 개발할 때마다 이런 고민을 새로 해야 한다면 엄청나게 많은 개발 비용, 시간을 소모해야 한다. 자바의 경우 이러한 처리를 JavaEE라는 기술 스펙으로 정리해 두었고, Servlet과 JSP는 여러 기술 중에 하나이다. 2.서블릿 Servlet 서블릿 Servlet? 서버에서 동적으로 요청과 응답을 처리할 수 있는 API들을 정의한 것 서블릿을 지원하는 환경에서 개..
· Web
일반적으로 브라우저는 자신이 원하는 정보를 전달하기 위해서 두 가지 방식을 사용한다. 1. 정보 전달 방식 Get 방식 주소창에 직접 원하는 데이터를 적거나 링크를 클릭해서 호출 원하는 웹의 주소를 호출할 때 필요한 데이터를 ?와 &, =를 이용해서 같이 전송하는 방식 주소와 필요한 데이터를 한번에 같이 보내기 때문에 단순 링크로 처리됨 👉 다른 사람들에게 메신저나 SNS 등을 통해서 쉽게 공유가 가능함 주로 특정한 정보를 조회하는 용도로 사용됨 Post 방식 입력 화면에서 필요한 내용을 작성한 후에 '전송'과 같은 버튼 등을 클릭해서 호출 주소와 데이터를 따로 보내는 방식 예) 회원가입, 로그인 웹 화면을 통해서 실제 처리가 필요한 작업을 하기 위해서 사용함 2. 데이터 종류 정적 데이터 항상 동일하게..
· Web
1. 정적 페이지 vs 동적 페이지 정적 페이지 Static Pages 동적 페이지 Dynamic Pages 데이터베이스에서 정보를 가져오거나, 서버에서의 처리가 없어도 사용자들에게 보여줄 수 있는 페이지 어떠한 요청에 의하여 서버가 일을 수행하고 해당 결과가 포함된 파일을 보여주는 페이지 - 서버에 미리 저장된 파일이 그대로 전달됨 - url 주소 외에는 아무 것도 필요없음 - 어떤 사용자가 오든 동일한 페이지를 보여줌 - url만으로는 들어갈 수 없는 웹페이지 - 사용자들마다 다른 페이지가 보여질 수 있음 ex) 네이버 검색 결과 ex) 네이버 메일, 지도, 인스타그램, 유튜브 등 2. Web Server와 WAS의 차이 💾Web Server 웹 서버란? 클라이언트가 요청한 정적인 콘텐츠를 HTTP ..
1. 트리거란? 특정 테이블에서 INSERT, DELETE, UPDATE와 같은 DML문이 수행되었을 때, 데이터베이스에서 자동으로 동작하도록 작성된 프로그램 👉 사용자가 직접 호출하는 것이 아니라, DB에서 자동적으로 호출 예: 상품을 주문했을 때 자동으로 배송 내역으로 들어가는 것, 회원가입 했을 때 웰컴 쿠폰이 자동으로 발급되는 것 테이블에 부착되는 프로그램 코드 IN, OUT 매개 변수 사용 가능 2. 트리거의 유형 행 트리거: 테이블 안의 영향을 받는 행 각각에 대해 실행됨 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 줄 변수를 사용하여 읽을 수 있음 트리거 이벤트 OLD NEW INSERT X O UPDATE O O DELETE O X 문장 트리거: INSERT, UPDATE, DE..
1. 저장 프로시저란? = 영구저장모듈 DB 내부에 저장된 일련의 SQL 명령문들을 하나의 함수처럼 실행하기 위한 쿼리의 집합 더보기 저장 프로시저와 함수의 차이점 저장 프로시저: 일련의 작업을 처리한 절차. 리턴값이 없거나 많을 수도 있음. 서버에서 실행되기 때문에 속도가 빠름 함수: 여러 작업을 위한 기능. 리턴값이 필수. 클라이언트에서 실행되기 때문에 프로시저보다 느림 (데이터베이스 내의 함수. 예 - COUNT) 2. 일반 쿼리문 vs 저장프로시저 일반 쿼리문 작동 방식 일반적으로 쿼리문 한 줄을 실행하더라도 파싱 -> 최적화 -> 컴파일 및 실행계획 등록(실행계획 결과를 메모리에 등록) -> 실행하는 과정의 많은 절차를 거침 최적화 단계에서 해당 쿼리문이 가장 좋은 성능을 낼 수 있는 경로를 결..
1. 프로젝트 소개 📆 진행기간 2024. 03. 15. 금 ~ 2024. 03. 25. 월  🤝팀 소개- 팀명I들 (or i들 or 아이들 or iiiiii들)- 팀 소개MBTI가 전부 I로 시작하는 여섯 명으로 구성된 팀- 팀 구성팀 구성원들의 역할과 책임, 팀원들의 개인적인 강점  🗣️프로젝트 소개- 프로젝트명TheMore (더 모아)- 프로젝트 설명저희가 진행한 프로젝트는 예산 및 수입/지출 내역을 작성하고,지출 내역을 사람들끼리 채팅으로 공유할 수 있는 풀 스택 프로젝트입니다.고금리, 고물가 시대에 '무지출 챌린지'를 하는 사람들이 등장할 정도로지출을 줄이고 저축하고자 하는 사람들이 많아졌습니다.또한 여러 사람들이 모여 지출 줄이기를 독려하거나 절약 습관 등을 공유하는 카카오톡 오픈채팅방 ..
혜발아기
Hye's Dev