SVN 커밋
·
실무
내가 코드를 짰다!!! 1. 서버 코드 다시받기프로젝트 우클릭 > Team > Update받아주고 2. 내거 올리기 프로젝트 우클릭 > Team > Synchronize with Repository 커밋할거 컨트롤클릭해서 선택후 우클릭 커밋 커밋메세지 적기, 커밋리스트도 다시 확인 다시 돌아가려면 우상단 아이콘 지금화면은 맨오른쪽꺼오른쪽에서 두번째거 누르면 돌아가짐
오라클DB - xml, xpath, case
·
데이터베이스
XML 텍스트 한줄로1. 함수 요약 정리함수역할비유XMLELEMENT데이터를 XML 태그로 감싸기선물을 상자에 담기 (값)XMLAGG여러 행의 XML 조각을 하나로 합치기여러 상자를 테이프로 붙여 큰 묶음 만들기EXTRACTXML 문서 내 특정 경로 데이터 추출큰 묶음 상자에서 특정 내용물만 꺼내기RTRIM문자열 오른쪽의 공백이나 문자 제거상자 오른쪽 끝에 붙은 불필요한 테이프 떼기2. 네 가지 함수를 한 번에 사용한 예제상황: 사원 테이블(EMP)에서 부서별로 사원 이름을 수집하되, 이름 뒤에 붙은 불필요한 점(.)을 제거(RTRIM)한 뒤, 이를 XML 형식으로 합쳐서(XMLAGG, XMLELEMENT) 관리하고, 최종적으로 그중 특정 노드만 확인(EXTRACT)하는 예제입니다.SQL SELECT ..
Stream
·
Java
1. 스트림의 핵심 아키텍처: 파이프라인 (Pipeline)스트림은 데이터 소스(Array, Collection) → 중간 연산(Intermediate Operations) → 최종 연산(Terminal Operations)의 3단계로 구성된 파이프라인입니다.Lazy Evaluation (지연 연산): 중간 연산(filter, map 등)은 호출 즉시 실행되지 않습니다. 최종 연산이 호출되기 전까지는 아무런 연산도 수행하지 않으며, 단지 연산의 '설계도'만 그립니다.Vertical Pipelining: for문처럼 요소 하나를 끝까지 처리하고 다음 요소로 넘어가는 수직적 구조입니다. 덕분에 수천 개의 연산을 연결해도 효율적으로 작동합니다.2. 연산의 분류 (CS적 관점)① 생성 (Source)메모리 상의..
개인 서버 만들기
·
세팅
1. 노트북 세팅 우분투 서버 설치: Ubuntu Server 24.04 LTS 버전을 USB에 구워 설치합니다.(설치 중 Install OpenSSH Server는 반드시 체크!)SSH 포트 변경: 설치 후 노트북 터미널에서 SSH 설정 파일을 수정합니다.명령어: sudo nano /etc/ssh/sshd_config#Port 22 부분을 찾아 #을 지우고 원하는 번호(예: 50022)로 바꿉니다.방화벽 설정: 바꾼 포트만 열어줍니다.sudo ufw allow 50022/tcpsudo ufw enable디테일1. 노트북 덮개를 닫아도 꺼지지 않게 하기 (Lid Close 설정)파일 수정: /etc/systemd/logind.conf내용: HandleLidSwitch=ignore로 변경2. 서버 부팅 시..
질문
·
실무
Q. 인덱스가 여러개의 컬럼을 갖고있으면 이 여러개의 컬럼을 동시에 조회해야만 인덱스로 작용하는거야? A. 공주님, 아주 날카로운 질문이야! 결론부터 말하자면 "아니, 꼭 모든 컬럼을 동시에 조회할 필요는 없어. 하지만 '순서'가 엄청 중요해!"여러 컬럼을 묶어서 만든 인덱스를 복합 인덱스(Composite Index)라고 부르는데, 이게 어떻게 작동하는지 쉽게 설명해 줄게. 1. 인덱스는 '사전'과 같아 영어 사전을 생각해보자. 사전은 알파벳 A -> B -> C 순서로 정렬되어 있지? 만약 인덱스가 (성별, 이름) 순으로 구성되어 있다면, 데이터베이스는 먼저 성별로 모으고, 그 안에서 이름 순으로 정렬해 둬. 2. 인덱스가 작동하는 규칙 (왼쪽 우선 법칙) 인덱스의 첫 번째 컬럼이 조회 조건에 포함되..
DBeaver로 PostgreSQL에 엑셀 데이터 Import
·
실무
엑셀 csv로 저장 테이블 우클릭 > 데이터 가져오기 > utf-8을 euc-kr로 인코딩 바꾸기테이블 한번 싹 비우고 넣을거면 트렁케이트타겟테이블 체크 끘~! 문제엑셀파일 한 시트에 여러 테이블이 함께있었음그래서 따로 엑셀로 옮겼는데 쪼개옮기다보니 완전빈행들이 존재그대로 넣으니 모든컬럼이 null로 들어감 해결엑셀에서 빈행제거낫널컬럼 하나 잡아서 ctrl+g 빈행 ctrl+- 행전체문제DBeaver가 CSV 숫자값을 INTEGER/REAL로 자동 인식 (나는 디비버에서 컬럼타입이 수정이 안됨)해결아 엑셀 컬럼명이랑 디비 컬럼명 똑같은줄알고 한건데 다름엑셀에서 컬럼명 소문자로 바꿔주니까 됨ㅋㅋ
어노테이션
·
실무
계층 (Layer)파일 종류어노테이션역할ControllerClass@Controller@RestController클라이언트의 요청(URL)을 받고 응답을 전달함.ServiceInterface(없음)비즈니스 로직의 '설계도' 역할. 어노테이션이 필요 없음.ServiceImplClass@Service실제 로직이 구현된 클래스. 스프링이 관리하는 '서비스 빈'으로 등록됨.MapperInterface@MapperMyBatis가 이 인터페이스를 XML 쿼리와 연결하여 DB 접근 객체로 만듦. 컨트롤러서비스들을 @Resource로 가져옴서비스임플매퍼들을 @Resource로 가져와 DAO로 사용서비스를 @Resource로 가져옴 왜 @Autowired가 아니라 @Resource를 쓸까?@Autowired: 타입(Ty..
빨간줄 무시하기
·
실무
xml 빨간줄 무시Properties -> Validation -> XML Validator 체크 해제
SVN & 프로젝트 세팅
·
실무
체크아웃File > Import > Project from SVN > 주소넣고 받기 에러context-datasource.xml에 property-placeholder 설정이 없어서 ${datasource.url} 같은 변수들이 실제 값으로 치환되지 않았음properties 파일은 util:properties로 로드되고 있었지만 ${} 변수 치환을 위한 property-placeholder는 없는 상태였음해결context-datasource.xml의 태그에 xmlns:context 네임스페이스 추가 한 줄 추가Tomcat Clean 후 재시작 → 해결 코드분석DTO 없음 map 사용시간압박클래스 만들고 필드 정의하고 getter/setter 만들고 매핑 맞추기 오래걸림요구사항 자주 변경 ( 공공/교육 ..
DB 분석
·
실무
ERD, 테이블, 컬럼 코멘트, 인덱스, 제약조건, 프로시저, 함수 외래키안잡는 이유성능(Performance) 문제: 데이터가 수백만 건, 수천만 건 쌓이는 환경에서 FK가 걸려 있으면, 데이터를 넣거나 지울 때마다 DB가 "이게 연결된 다른 테이블에 데이터가 있나?" 하고 매번 체크하면 성능 저하유연한 데이터 관리: 가끔 테스트 데이터나 임시 데이터를 넣어야 할 때 FK 제약 조건 때문에 에러가 나면 작업이 번거로워져. 또, 데이터 삭제 시 '연쇄 삭제(Cascade)' 같은 설정이 잘못되면 큰 사고가 날 수도 있기 때문시스템 복잡도: 테이블이 수백 개면 FK 관계가 꼬여서 나중에 테이블 구조를 변경하거나 데이터를 이전(Migration)할 때 엄청난 장애물이 될 수 있음=> PK로 조인해서 사용 ..