OOSD & Mysql

이지우·2024년 6월 17일
0

멋사

목록 보기
6/16

OOSD Process

OOSD Process; Object-Oriented Software Development Process
객체 지향 소프트웨어 개발 과정

workflows: 해야할 일
activities: woker가 구체적으로 할 일
artifacts: 산출물

산출물을 어떤 형태로 만들지에 대한 툴이 필요함


workflow

  1. 요구사항 수집
  2. 요구사항 분석
  3. 아키텍쳐 수립
  4. 설계
  5. 구현
  6. 테스트
  7. 배치

장점

조직이 하는 일과 소프트웨어는 같다고 볼 수 있음

  • 조직에서 팀별로 분리하여 작업할 경우 각 작업은 독립성을 갖지 않고 서로 유기적인 관계를 가져야 함
    = 소프트웨어에서 어떻게 협력 구조를 가지고 만들 것인가?

다형성
: 속도를 위해서 만들어진 처리 기법
: if를 줄이기 위함


project stakeholders

프로젝트의 모든 참가자

Deployment specialist
: 소프트웨어 비용을 줄이기 위한 전략을 짜는 사람


모델링

  • 단순화 시켜서 가시화를 위함
  • 여러 각도에서 봐야 함
  • 목표: 소통
  • 언어 방식은 휘발성이기 때문에 가시화하기 위하여 문서화, 모델링 함

  1. 각자 가지고 있는 mental model에서 요구사항 모델을 끄집어내어 문서화
  2. 어마어마한 문서 중 기능적 요구사항/비기능적 요구사항에 대해 설계
  3. 두 가지를 합하여 솔루션 모델 제작
  4. 코드화

UML

시각 정보를 사용한 저장 매체를 표준화 한 도구
소통의 방법을 시각화하는 툴



MySQL

  • DBMS
  • ctrl+Enter = 커서 라인 실행

생성

create database myboard default character set utf8;

use myboard;

create table post(
id int(11) not null auto_increment,
title varchar(100) not null,
content text null,
created datetime not null,
writer varchar(100) null,
email varchar(100) null,
primary key(id)
);
// NULL은 생략 가능

desc post;	// 설정한 필드 이름, 타입 옵션 표시

삽입

insert into post(title, content, created, writer, email)
values('삶은', '계란이다', NOW(), 'lee', 'lee@naver.com');

insert into post(title, content, created, writer, email)
values('위대하다', '밥을 많이 먹어서', NOW(), 'lee', 'lee@naver.com');

insert into post(title, content, created, writer, email)
values('나의 성격유형', 'infj', NOW(), 'kim', 'kim@naver.com');

insert into post(title, content, created, writer, email)
values('가을바람', '가을은 쓸쓸하다', NOW(), 'park', 'park@naver.com');

insert into post(title, content, created, writer, email)
values('언젠가부터', '사람들과 이해관계가 힘들어지는 것 같다', NOW(), 'lee', 'lee@naver.com');

조회

select id, title, content from post;

select * from post where id>2;

select * from post where writer='lee';

select * from post order by id desc;// 내림차순
select * from post order by id asc;	// 오름차순

select * from post limit 2;	// 정렬된 내용 중 위에서 2건

수정

update post set content = '성격 파탄자' where id = 3;

삭제

delete from post where id=2;

테이블 분리

rename table post to post_bk;	// 테이블명 변경

create table post(
id int(11) not null auto_increment,
title varchar(100) not null,
content text null,
created datetime not null,
profile_id int(11) default null,
primary key(id)
);

create table profile(
id int(11) not null auto_increment,
writer varchar(20) not null,
email varchar(100) default null,
primary key(id)
);

위 보이는 테이블에서 더블 클릭 후 내용 작성도 가능
id는 자동 할당 됨

insert into post(title, content, created, profile_id)
values('삶은', '계란이다', NOW(), 1);

insert into post(title, content, created, profile_id)
values('위대하다', '밥을 많이 먹어서', NOW(), 1);

insert into post(title, content, created, profile_id)
values('나의 성격유형', 'infj', NOW(), 2);

insert into post(title, content, created, profile_id)
values('가을바람', '가을은 쓸쓸하다', NOW(), 3);

insert into post(title, content, created, profile_id)
values('언젠가부터', '사람들과 이해관계가 힘들어지는 것 같다', NOW(), 1);


join

[참고내용]

select *
from post
left join profile
on post.profile_id = profile.id;

모든 칼럼이 다 나와서 가독성이 떨어짐

select id, title, content, created, writer, email
from post
left join profile
on post.profile_id = profile.id;

실행 시 오류 발생
select의 id가 어떤 테이블의 id인지 모호함

select post.id, title, content, created, writer, email
from post
left join profile
on post.profile_id = profile.id;

profile
노력형 인간

0개의 댓글