본문 바로가기

전체 글10

첫 SI 프로젝트를 마치며 작년 9월에 시작한 입사 후 첫 프로젝트가 이번 주로 완전히 막을 내렸습니다. 올해 2월에 끝날 예정이었던 프로젝트가 연장에 연장을 거듭하고 이제야 마무리되었습니다. 프로젝트 드롭, PM 교체의 말이 나올 정도로 고객사와 사이가 틀어질 때도 있었고, 오픈이 가능한 상태에 도달했음에도 고객과 조율이 되지 않아 무의미한 작업으로 야근만 지속되던 시기도 있었습니다. 프로젝트 일 년 간 야근은 거의 필수였으며 주말 출근까지 감내한 날들도 많습니다. 이번 일이 힘들었던 건 잦은 야근보다 프로젝트가 계속 지연되면서 방향키를 쥐고 있는 상사에 대한 불신과 이에 목표를 잃고 꺾인 제 마음이 컸습니다. 올여름부터는 체력도 한계에 다다르며 '퇴사'와 '이직'을 품고 악에 받쳐 다녔던 거 같습니다. 정말 끝날듯하면서도 끝나.. 2023. 12. 3.
[Oracle] JOIN (2) - OUTER JOIN, SELF JOIN(오라클, ANSI 문법) 이번에는 CROSS JOIN과 INNER JOIN에 이어서 OUTER JOIN과 SELF JOIN을 살펴볼 것이다. (CROSS JOIN과 INNER JOIN 링크는 아래에 남겨두었다.) JOIN 실습을 위한 테이블1, 테이블2, 테이블3 세 개의 테이블은 아래와 같다. OUTER JOIN(외부 조인) INNER JOIN이 모든 테이블에 데이터가 존재하는 경우에만 결과를 출력했다면 OUTER JOIN은 조인 조건에 만족하지 않는 데이터도 결과로 출력하기 위해 사용한다. 한쪽 테이블에는 데이터가 있고 한쪽 테이블에는 없는 경우 데이터가 있는 쪽 테이블 내용을 전부 출력할 수 있기 때문이다. OUTER JOIN에는 LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN이 .. 2022. 8. 10.
[Oracle] JOIN (1) - CROSS JOIN, INNER JOIN(오라클, ANSI 문법) JOIN은 두 개 이상의 테이블을 연결하여 데이터를 조회하는 방법이다. 관계형 DBMS는 성능 향상을 위해 정규화를 진행하기 때문에 테이블을 연결하여 조회하는 JOIN은 매우 중요한 기능이다. JOIN에는 INNER JOIN(내부 조인), OUTER JOIN(외부 조인), CROSS JOIN(교차 조인), SELF JOIN(셀프 조인)이 있다. 이 네 유형을 오라클에서 사용되는 JOIN 문법과 모든 제품에서 공통적으로 사용 가능한 표준(ANSI) JOIN 문법을 사용하여 정리해볼 것이다. JOIN 실습을 위해 테이블1, 테이블2, 테이블3 세 개의 테이블을 만들어보았다. CROSS JOIN( = 카티션 곱(Cartesian Product)) 카티션 곱은 조인할 때 WHERE절을 적지 않거나 잘못 기술되었.. 2022. 8. 3.
[Git] 기존 원격(Github) 저장소를 새로운 원격 저장소로 복사 팀 프로젝트 당시 구현하지 못한 부분과 변경하고 싶은 부분을 개인적으로 수정하고 싶어서 공동 저장소를 fork하여 진행했다. 그런데 변경 부분을 커밋해도 깃허브 잔디가 심어지지 않았다. 알고 보니 fork한 레파지토리의 커밋 이력은 반영이 되지 않는다고 한다. 그래서 결국 fork한 저장소를 새로운 Github 저장소에 옮겨 진행하기로 했다. 새로운 Github 저장소를 생성했다면, Fork한 저장소(기존 저장소)를 로컬에 가져오도록 clone하는데, 이때 bare 옵션 혹은 mirror 옵션을 사용한다. $ git clone --bare 기존 저장소의 Github 주소(https://github.com/user/●●●.git) *bare 옵션을 사용하면 working tree 없는 bare 저장소로 c.. 2022. 7. 11.
[DB] 데이터 모델과 데이터베이스 설계( + 스키마) 현실 세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화, 명확화 하여 체계적으로 표현한 것. 데이터 모델의 목적은 데이터베이스를 구축하고, 일정한 표기법에 의해 업무 정보를 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 분석하는 것. ▶ 데이터 모델에 표시할 요소 : 개체(Entity), 속성(Attribute), 관계(Relationship) ▶ 데이터 모델에 표시할 요소 : 구조(Structure), 연산(Operation), 제약조건(Constraint) ▶ 데이터 모델의 종류 : 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델 요구 조건 분석 -> 개념적 설계(개념적 데이터 모델링) -> 논리적 설계(논리적 데이터 모델링) -> 물리적 설계(물리적 데이터 모델링) ->.. 2022. 5. 25.
[Oracle] 테이블 복사/ 테이블의 데이터 복사 프로젝트를 진행하면서 테이블의 구조 변경을 하거나 기능 테스트 중 원하지 않게 데이터가 변경되는 경우가 있다. 많지 않은 데이터라도 하나하나 다시 추가하거나 변경하는 것이 번거롭기 때문에 테이블을 복사해서 데이터를 백업해두면 편하다. 복사해둔 테이블로부터 데이터를 다시 복사하여 데이터를 복구할 수 있기 때문이다. 테이블 복사 - 기존 테이블과 똑같은 새로운 테이블 만들기 CREATE TABLE 새로 만들 테이블명(복사본) AS SELECT * FROM 복사할 테이블명(원본); AS 키워드를 사용해서 원본 테이블의 구조와 데이터까지 모두 똑같은 복사본을 만들 수 있다. 다만 NOT NULL을 제외한 제약조건은 복사되지 않는다. - 기존 테이블의 구조만 같은 새로운 테이블 만들기 CREATE TABLE 새로.. 2022. 5. 19.