[Study] BE 16

[JPA활용1 - 김영한] 세션 2 도메인 분석 설계 - 엔티티 클래스 개발1

엔티티 클래스 개발 예제에서는 Getter, Setter 모두 사용하지만 실무에서 Setter는 꼭 필요할 경우에만 사용 Getter 호출 막해도 ㄴ상관, Setter 호출 시 데이터 변화로 인해 변경 추척에 어려움 엔티티의 식별자와 PK컬럼명 : 테이블은 관례상 컬럼이름은 [테이블명 + id]을 사용하고, 엔티티 타입은 id로 쉽게 구분할 수 있도록 작성한다. 연관관계 Mapping 분석 코드 회원과 주문 domain>Order @ManyToOne @JoinColumn(name = "member_id") private Member member; Order - Member : 다대일 관계 @ManyToOne Member - Order : 일대다 관계 @OneToMany @JoinColumn(name=" ..

[스프링 입문 - 김영한] 세션 5 회원 관리 예제 - 웹 MVC 개발

회원 웹 기능 - 홈 화면 추가 @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } 단순한 회원 등록과 조회를 할 수 있는 사이트생성 > home.html 호출 home.html localhost 8080 기본 페이지 회원가입 /members/new 회원목록 > /members - 이전에 만들었던 static > index.html 보다 controller가 우선순위가 높다. - controller 여부 확인 후 없으면 static 파일 회원 웹 기능 - 등록 MemberController @GetMapping ("/members/new") public String createF..

[스프링 입문 - 김영한] 세션 3 회원 관리 예제

섹션 3-4 : 회원 서비스 개발 회원 서비스 개발을 위한 service 패키지 안에 서비스 클래스를 생성한다. public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); } 회원 서비스가 메모리 회원 리포지토리를 직접 생성한다. 회원 서비스를 위한 MemberRepository를 선언해 준다. 기획자와의 원활한 소통을 위해 서비스 클래스에 관련된 이름은 비즈니스 적인 이름을 사용하는 것을 권장한다. ex) join, findmember 회원 가입 public Long join(Member member){ // 같은 이름이 있는 중복 회원x memberRepository..

Chat-GPT와 STT 기술을 활용한 회화 기능

🗣️ 프로젝트 소개 TalkFlow-KR : chat-gpt를 활용한 회화 서비스 개발 ⏰ 개발 기간 2023.05.02 ~ 2023.05.15 ⚙️ 개발 환경 ront-End : React, OpenAI(text-davinci-003모델 사용), STT(Speech-to-Text, React-Speech-kit API 사용) Back-End : Node.js Server : Mysql ✍ TalkFlow 기능 - stt api 사용해서 음성 데이터 처리 - OpenAI gpt-3 모델 사용 ✍ 코드 기술 데이터베이스 설계 AQueryTool 을 사용해서 초기 설계 후 VScode extension 으로 MySQL DB 연결 설정 파일 ('config/config.json')에서 데이터베이스 연결 정보를..

[Study] BE/Node.js 2023.05.25

Sokect.io를 활용한 채팅 서비스

🗣️ 프로젝트 소개 양방향 통신을 위한 웹 소켓 기술을 활용하여 채팅 기능 구현 ✍ 기능 채팅 기능 보낸 시간 채팅 라인 수 확인 대화 상대 목록 공백 입력 X ✍ 코드 기술 static index.css my-chat 사용자가 보낸 채팅 메시지는 오른쪽 div 요소에 메시지 내용과 함께 사용자의 닉네임 출력 other-chat 상대방이 보낸 채팅 메시지 왼쪽 index.js 채팅 애플리케이션의 프론트엔드 코드 Socket.io 소캣 객체 생성 socket.on(' ', ()=>{...}); 소켓에 연결되었을 때 실행할 이벤트 핸들러 등록 views chat.ejs chat.js node.js, Socket.io 로 클라이언트와 서버 간의 양방향 통신을 구현 express 모듈 사용 클라이언트가 웹페이지..

[Study] BE/Node.js 2023.04.20

[포스코x코딩온] Socket

더보기 ⚙️ 네트워크 지식이 필요한 부분이었다고 생각한다. 처음 듣는다면 정말 멍 때리고 있을 것 같다. 학교 수업 좀 더 열심히 들을 걸 후회한다. 오늘도 뼈저리게 느끼고 가는 전공지식의 중요성...🤣 그렇지만 통신에 대해 빠져버리니 끝도 없이 공부할 게 계속해서 나온다. 더 깊게 공부하는 것이 맞는지, 코드를 구성하기 위한 지식만 이해하고 넘어가는 게 맞을까라는 의문이 든다. 이해는 되지만,코드는 내 맘대로 안 짜져지는 슬픔이 있었기에 이론을 한 번 더 정리해보고 넘어가는 것도 많은 도움이 될 것 같다. 소켓 소켓은 프로그램이 네트워크 상에서 데이터를 주고 받을 수 있도록 서버랑 클라이언트를 연결해주는 도구이다. 휴대폰을 충전하고자 콘센트 구멍을 찾고 있었다. 그러나 구멍이 없는 벽에 코드를 넣는다 ..

[Study] BE/Node.js 2023.04.18

[포스코x코딩온] Cookie, Session

더보기 🍪 특정 사이트에 들어가는 순간 보이는 팝업 창은 모두 닫아버리는 나였다. 눈에 거슬리던 것들이 cookie 라니,, 한 두 개의 팝업이면 모를까 , 여러 개면 더욱더 거추장스럽다. 나처럼 보기 싫은 사람들을 위한 첫 화면에서 많은 쿠키가 있다면 모든 쿠키를 한 번에 제거할 수 있는 방법을 개발하면 좋을 것 같다. Cookie 웹 브라우저 ( 클라이언트)에 저장되는 키와 값(이름, 값, 만료일, 경로 정보)이 들어있는 작은 데이터 파일이다. 개발자 도구 Appliction > Cookie > 확인 가능 ex. 자동 로그인, 안내문의 "☐ 오늘 그만 보기" 동작 방식 클라이언트가 페이지를 요청한다. 서버에서 쿠키를 생성한다. http 헤더에 쿠키를 포함하여 보내고, 만료기간이 끝나지 않았다면 쿠키를..

[Study] BE/Node.js 2023.04.12

[포스코x코딩온] Sequelize

더보기 📂 이 모든 것을 알고 나면 편안해지는 게 맞겠죠? ORM 패키지인 Sequelize를 배우고 정리해봤다. 더 자세한 것을 알기 위해서는 공식 문서를 읽어보는 것이 정답일 수도 있겠다. 문제가 생긴다면 가장 빠른 해결 방법은 구글링이라 생각한다. 이전에 sql문을 작성할 때는 실수가 잦았는데, sequelize를 사용하니 좀 더 편리하다는 생각이 들었다. Sequelize ORM 라이브러리 중 하나로 데이터베이스의데이터를 자바스크립트 구문을 통해 sql 문으로 변환한다. 이를 활용하면 sql 언어를 사용하지 않아도 DB 설정이 가능하다. 많은 RDBMS를 지원하고 promise 기반으로 구현되었기에 비동기 로직을 편하게 작성할 수 있다는 장점도 있다. 기존에는 SQL문 쿼리를 작성해서 CRUD를 ..

[Study] BE/Node.js 2023.04.09

[포스코x코딩온] MVC_MySQL

더보기 📂 프로젝트 생성만 N번째, 이제는 눈감고도 칠 것 같지 않다. 이제 조금 늘었다는 생각이 드는 건 npm install 에서 install 다 안치고 i 만 쳐버린다. 이 자신 정말 장하다 장해! 저번 시간에 배운 mvc 방식에 mysql 을 연결하여 사용하는 방법을 알아봤다. 아직 mvc도 잘 모르겠는데 내가 어떻게 mysql 연결까지 하지 라는 생각을 했지만 또 질질 끌려가고 있다. 📂 프로젝트 폴더 구조 controller Cvisitor.js View 와 Model 연결 부분 model Visitor.js 데이터 처리 node_modules routes index.js 경로 설정 views 404.ejs index.ejs visitor.ejs UI 관련 처리 .gitignore app.j..

[Study] BE/Node.js 2023.04.09

[포스코x코딩온] 데이터베이스

데이터베이스 데이터를 저장하는 구조/자료의 모음으로 데이터의 종합소이다. 데이터 간의 중복은 없어야 한다. 데이터베이스가 없을 때는 파일 시스템을 사용해서 데이터를 저장해왔다. 그러나, 데이터가 중복되고 데이터 간 불일치가 발생하였고, 이를 DBMS로 해결하였다. DBMS(DataBase Management System) 파일 시스템이 가진 문제를 해결하기 위해 만들어졌다. 데이터베이스에 접근하고 이를 관리한다. - 관계형 데이터베이스 = RDBMS(Relational DBMS) 데이터베이스 용어 열 = column = atrribute = 속성 행 = record = tuple = 튜플 테이블 = table = relation key : 데이터베이스에서 튜플을 찾거나 순서대로 정렬할 때 구분하고 정렬의..

[Study] BE/Server 2023.04.06