목록분류 전체보기 (108)
어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

프로젝트 생성 #서버포트 설정 server.port=80 #thymeleaf cache 설정(새로고침 반영) spring.thymeleaf.cache=false #db 연결 설정 spring.flyway.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/ksmart47db_basic?serverTimezone=UTC$characterEncodeing=UTF8 spring.datasource.username=ksmart47id spring.datasource.password=ksmart47pw # log-back file 설정 logging.config..

[ thymeleaf 레이아웃 라이브러리 추가 ] 1. thymeleaf 레이아웃 라이브러리 사이트 접속 [링크 클릭]
[ 포트가 이미 사용중이라는 오류가 발생했을 때 ] 1. cmd 실행 2. netstat -a -o 3. 로컬주소에서 죽이고자 하는 포트 넘버 찾아서 PID 번호 기억하기 4. taskkill /f /pid PID번호

설치했는데 안된다면 ? 1. 스프링 부트 종료 2. C:\sts-4.18.1.RELEASE - SpringToolSuite4.ini 메모장으로 열기 3. --add-opens=java.base/java.lang=ALL-UNNAMED 붙여넣기

Maven build 하는 이유? 한 번 설정해두면 톰캣 없이 WAS 실행 됨 [ 1. 환경 변수 설정 ] [ 2. 스프링부트에서 JRE 경로 설정 ] [ 3. 스프링부트에서 Maven build ] maven build 설정 수정 : Run As - Run configurations... [ 에러1 : maven build 테스트 오류 ] 주의 : 처음에 스프링부트 스타터로 프로젝트를 만들었을때 Group / Artifact / Package 잘 못 썼다고 나중에 패키지에서 수정하면 문제가 생긴다. 프로젝트 내의 모든 Group / Artifact / Package를 일치시켜줘야 한다.(수정하지 않고 그냥 다시 만드는게 나음) pom.xml 파일에서 내의 뒤에 true 추가해주거나 모든 Group / ..

[ MySQL workbench ] [ navigator ] MySQL의 관리 및 운영을 위한 도구 대부분의 작업이 가능하고 MySQL의 명령문이나 SQL문을 몰라도 대부분 작업 수행 가능 [[ Administration ]] [ Management ] MySQL 서버의 가동 상태, 설치된 폴더 등 확인 MySQL 서버에 연결되어 있는 클라이언트 정보 확인 사용자 생성, 삭제, 권한 관리 데이터 내보내기 / 가져오기 등 [ Instance ] MySQL 연결 정보를 관리 인스턴스 중지 도는 시작 Server에 기록된 로그 조회 옵션 파일 설정 정보 확인 및 변경 등 [ Performance ] 성능 상태 및 구성 관련 메뉴 [[ Schmas ]] 데이터베이스 생성 및 삭제 데이터베이스 개체(테이블, 뷰,..

[ Spring Boot 설치 ] Spring | Tools spring.io 이클립스 버전으로 다운 받아서 로컬 디스크(C:) 에 붙여넣기 (압축 안푼 상태) 윈도우 - cmd cd / => dir /w => java -jar spring탭 => 압축풀기 시작 - 완료되면 닫기 다시 로컬 디스크 가면 압축 풀려있음 (sts-4.18.1.RELEASE 폴더) SpringToolSuite4.ini 파일 메모장으로 열기 -Xms1024m으로 수정하고 저장 (램 8기가면 설정하고 16기가 이상이면 그냥 써도 됨) [ Spring Boot 기본 설정 / 언어인코딩] 1. window - Preferences enco 검색해서 Text, Java Properties File - Spring Properties F..
[ Stored Program ] 내장식 프로그램, 프로그램 내장 방식, 저장 프로그램 MySQL 전용 언어 * SQL 전용 언어 : SQL문에 변수, 제어문, 입출력 등 프로그래밍 기능을 추가해서 SQL문으로 처리하기 어려운 문제를 해결할 수 있다. [[ 특징 ]] - MySQL 성능 향상 : 긴 쿼리의 내용을 전송하지 않고 프로시저의 이름과 매개 변수 등을 전송하여 네트워크 과부하를 줄일 수 있다. - 유지 관리 간편 : 직접 SQL문을 작성하지 않고, 생성한 이름만 호출하여 일관된 작업을 진행할 수 있다. - 모듈식 프로그래밍 : 저장 프로그램을 한 번 생성해서 쿼리 수정, 삭제 등 관리가 수월하고, 모듈처럼 자주 사용하는 구문을 재사용할 수 있다. - 보안 강화 : 사용자 별 테이블에 접근 권한을..
[ GROUP_CONCAT ] 서로 다른 결과를 한 줄로 보여줄 때 사용 기본 구분자 : ,(쉼표) 구분자 변경 : GROUP_CONCAT(컬럼명 SEPARATOR '&') -> 구분자가 쉼표에서 &로 바뀌는 쿼리 중복 문자열 제거 : GROUP_CONCAT(DISTINCT 컬럼명) SELECT * FROM 테이블_이름; SELECT 컬럼1 , GROUP_CONCAT(컬럼2) FROM 테이블_이름 GROUP BY 컬럼1; WITH cte_order AS (SELECT M.m_id ,M.m_name ,G.g_name ,SUM(O.o_amount) FROM tb_order AS O INNER JOIN tb_member AS M ON M.m_id = O.o_id INNER JOIN tb_goods AS G O..

[ 메인 쿼리 ] 서브 쿼리의 밖에 있는 쿼리 (주 질의 / 외부 질의) 메인 쿼리 안에 서브 쿼리를 작성한다. 작성 순서 : SELECT > FROM > WHERE > GROUP BY > HAVING > ORDER BY 실행 순서 : FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY [ 서브 쿼리 ] 하나의 쿼리 안에 들어가는 다른 쿼리 (부속 질의 / 내부 질의) 대표적으로 SELECT, FROM, WHERE 절에서 사용 가능하다. 서브 쿼리 : 필요한 데이터만 찾아서 조회 / JOIN : 데이터를 모두 합쳐서 연산 -> 데이터가 대량일 경우 JOIN보다 서브 쿼리의 성능이 좋다. [[ 종류 ]] [ 스칼라 서브 쿼리 (SELECT절) ] - 단일 행과 단..
[ 데이터베이스 설계 ] 사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정 실무 능력, 경험에 따라 설계가 다를 수 있음. 단, 좋은 설계와 나쁜 설계는 분명히 존재 [[ 설계 단계 ]] - 요구 사항 수집 및 분석 - 개념적 > 논리적 > 물리적 - 구현 [ 개념적 ] - ERD, DBMS에 독립적이다. - 개체와 속성을 추출한다. - 업무와 관련이 깊은 명사를 추출한다. ex) 마트에서 상품을 구입한다. -> 상품, 마트, 고객, 직원, 관리자 대학교 학사 관리 -> 사물 : 강의실, 교자재, 행정실 / 사람 : 행정 담당자, 학생, 교수 쇼핑몰 구현 -> 쇼핑몰, 회원, 아이디, 비밀번호 - 쇼핑몰 : 광범위하고 일반적인 의미는 제외한다. - 개체의 핵심 속성을 추출한다. ex) 고..
서블릿(servlet) 동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 어플리케이션 프로그래밍 기술 이미 자바 기반으로 작성되어 있기 때문에 가져다 쓰기만 하면 됨 톰캣(was)가 하는 일(주소요청과 응답)을 서블릿에 위임 클라이언트 - 주소요청 -> 아파치(웹서버) -> 톰캣(was) -> servlet -> JSP(웹자원) 요청이 일어나면 servlet의 특정 클래스(doPro...)의 메서드가 호출된다. 원래 request를 받으면 JSP 거치는 것 없이 JSP 전에 바로 response를 전달하고 끝남(redirect - 평범하게 끝난 요청) 서블릿의 dispatcher에 request,response를 통하면 웹자원/JSP까지 전달됨(forward - 요청의 생명주기 길어짐) DB에서 정보를 ..
[ JOIN ] 두 개 이상의 테이블을 묶어서 하나의 결과 집합으로 만드는 것 관련 있는 두 개 이상의 테이블을 결합하여 여러 테이블에 나눠져 있는 테이터들을 한 번에 가져오기 위한 방법 두 테이블을 JOIN하려면 테이블이 1 : n 관계로 연결되어야 한다. (기본 키 : 외래 키) [ INNER JOIN ] - 교집합 - 두 테이블이 공통적으로 가지고 있는 값 (테이블1에 A,B,C가 있고 테이블2에 A,C가 있다면 INNER JOIN했을 때 A,C만 JOIN되어 출력된다.) SELECT * FROM 테이블1 AS a INNER JOIN 테이블2 AS b ON a.m_key = b.u_key WHERE 조건; * ON : 작성하지 않으면, 데이터가 규칙 없이 섞여버린다. a.m_key 와 b.u_key..
모델링? - 현실에서 사용하는 복잡한 데이터를 어떻게 컴퓨터의 DBMS에 옮겨 놓을지 결정하는 과정 과거 : 프로젝트의 규모 작았고, 사용자의 요구 사항도 단순했음 현재 : 프로젝트의 규모 크고, 사용자의 요구 사항도 복잡해짐 데이터 모델링 - 건축 현실 세계 -> 개념 세계 -> 컴퓨터 세계로 표현 EX ) 네이버 로그인 -> 회원 아이디, 비밀번호, 로그인 날짜, IP 등... -> 테이블 형태 특징 1. 추상화 : 현실 시계를 간략히 표현 2. 단순화 : 누구나 쉽게 이해할 수 있도록 표시한다. 3. 명확성 : 명확하게 의미가 해석되고, 한 가지 의미만 가져야 한다. 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업이다. 변환 대상 : 실체가 있는 대상 + 행동까지 변환 가능 나 > 올리브영 - 직..