2024-01-04 (19일차) - 게시판만들기, DBMS

·2024년 1월 4일

📅 2024-01-04, 19일차

TODO

  • 생성자 심화 및 ArrayList 강의영상 복습
  • 추상클래스 인터페이스
  • 수요일 강의 다시 봐야함
  • 오늘 강의도 다시 봐야함

내생각

게시글의 작성자만 해당 글의 수정과 삭제가 가능하도록 :

"글쓰기 로그인한 상태에서만 되도록"이랑 좀 비슷한거 같음
login / logout 명령어 다음에 조건문 써서 확인한 것 처럼

delete / modify 명령어 다음에 조건문 써서
작성자랑 로그인한사람이랑 일치하는지 확인해야 할 것 같음
<작성글의 작성자> 와 <로그인한자>를 비교해야함

작성글의 작성자를 어떻게 확인하지
작성글과 작성자의 대한 정보가 리스트에 들어가있지
명령어 article modify 다음에 나오는 숫자로 게시글 부터 찾고

id로 게시글 찾으면 그 게시글의 작성자인 loginId를 빼내야해
어떻게.........................?

회원정보랑
글의정보랑 따로 분리되어있지않나??????
회원정보 - members 어래이리스트
글의정보 - articles 어래이리스트

그러면 글을 작성할때 회원정보도 같이 저장해야하나?
어떻게?
dowrite할때????????????????????????????????
글쓰고 new Article에 조립되고 articles 어래이리스트에 저장될 때 .....
뭔가를 해야하나 ?

객체를 하나 새로 만들까?
글의 정보랑 회원의 정보를 한번에 조립해서.......
어래이리스트에 담을까 ????? ????_???????
그럼 클래스도 만들어야함?????????????????
객체안만들고는 못하나?
그냥 아티클 어래이리스트에 회원정보 넣으면 안되나?????
글의 정보에 회원번호 정도는 포함되는 것도 되지않나? 가능!

현재상황

  • 아무나 다 수정삭제 가능
  • 로그인 안해도 수정삭제 가능
  • 게시글에 작성자가 없어 -> 있게 해줘야 함
  • 로그인해야 수정삭제 가능
  • 게시글에 작성자 정보 담기
  • 수정이나 삭제할 때 로그인 아이디를 체크

===========
dowrite 생성자 실행 시 memberId의 출처

private void doWrite() {

		System.out.println("==게시글 작성==");
		int id = lastArticleId + 1;
		String regDate = Util.getNowDate_TimeStr();
		String updateDate = regDate;
		System.out.print("제목 : ");
		String title = sc.nextLine();
		System.out.print("내용 : ");
		String body = sc.nextLine();

		Article article = new Article(id, regDate, updateDate, loginedMember.getId(), title, body);
		articles.add(article);

		System.out.printf("%d번 글이 생성 되었습니다.\n", id);
		lastArticleId++;

	}
	Article article = new Article(id, regDate, updateDate, loginedMember.getId(), title, body);
		articleService.add(article);

적을게 많아..시간이가 없었을뿐...

detail 에서도 작성자이름을 노출시켜!!!!!!!!!!!!!!!

list에서 작성자이름을 가지고 온 방법과 비슷할 것 같음

writername 변수 그대로 복붙해도 될 것 같음
그럼 작성자는 null로 나오겠지

그럼 for each 반복문그대로 가지고와서
조금만 바꿔도 되지 않을까......................
제발...........

아티클을 이미 찾았었네
그럼 for each로 다시 찾을 필요 없지 않을까...

article을 foundArticle로만 바꾸면 되는거였어!!!!!


  • DAO (리포지토리라고했는데)
  • DAO와 DTO의 차이는?!

📂DBMS (DataBase Management System)

SQL (structured query language)

이미지스프라이트
이미지데이터
텍스트데이터
1. Key - Value : 단순해서 잘 안쓴다!
2. Relation - 행 row / 열 column 이다~ (SQL)
3. Graph (Neo4j)
4. 문서 (json)

DB != DBMS
DB는 DBMS가 관리하는 대상

RDBMS 특징

  • Relational DataBase Mangaement System
  • Data를 Column과 Row형태로 저장한다.
  • 데이터의 분류, 정렬, 탐색 속도가 비교적 빠르다.
  • SQL(Structured Query Language, 구조화 질의어)라는 정교한 검색 query를 통해 데이터를 다룬다.
  • Transaction (작업의 완전성을 보장)
  • 반드시 Schema 규격에 맞춰야 한다. (유연한 데이터 저장 X)
  • 부하의 분산이 어렵다. ( 수직확장만 가능 )
  • 대표적으로 MySQL, SQLite, PostgreSQL, Oracle 등 이 있다.

mySQL을 공부한다 = mariaDB를 공부한다

xampp - 윈도우 개발 환경 쉽게 세팅해주는 툴

  • 결론, xampp가 서버역할을 해준다~

MySQL

  • 서버
  • 클라이언트
  • 복수개의 데이터를 다룬다

  • 서버(아파치, nginx)
  • 클라이언트(브라우저)

서버는 보통 리눅스! 왜냐면 무료니까!

질문

질문

시험 망했는데

AM과 wisesaying 둘다 CRUD인데

둘중 뭔가 하나를 딱 정해서 공부해야 할 것 같고
왔다 갔다하면 헷갈릴거같은데

wiseSaying에 집중해야하는건지???
AM위주로 공부하는게 나을지??

wiseSaying이 나을까? <- rq 클래스 있고없고 차이!

결론: AM을 더 공부하자 앞으로를 더 생각해서!

Teacher's Advice

profile
hello world

0개의 댓글