내일 배움 캠프 (109) 썸네일형 리스트형 프론트엔드 연결 리팩토링 이전에는 파일 하나당 하나씩 분기를 해서 처리했었는데 이제 url 뒤의 확장자를 체크해서 프론트엔드 파일이면 함수로 넘겨 주고 함수 안에서는 /를 제외하고는 각자 파일을 찾아갈 수 있게 하였다. 이전 app.js if문 분기 if (pathname == '/' || pathname == '/main') { frontconnection(pathname, res); } 이전 fontendconnection.js import fs from 'fs'; function frontconnection(pathname, res) { let filePath; if (pathname == '/main') { filePath = './dist/public/main.html'; } if (pathname == '/') { f.. WIL 20230827 0. 기간 : 20230821 ~ 20230827 1-1. 이번 주 동안 있었던 일 최종 프로젝트 백엔드 개발 1-2. 이번 주 체크리스트 [ O ] 예쁜 말로 협업하였는가? [ O ] 12시간 동안 몰입하였는가? [ O ] 코딩 시 복사 + 붙여넣기를 하지 않았는가? [ O ] 친절한 개발자였는가? [ O ] 이번 주를 평가하였을 때 주니어 개발자가 될 수 있겠는가? 2. 이번 주 소감 열심히 진행하였고 결과가 좋았다. 3. 이번 주에 배운 것 3-1. codedeploy : AccessDeniedException 이 친구가 또 생명 주기 에러를 뱉기 시작했다.... 저번에 같은 경험이 있어서 로그를 살펴보니 또 같은 에러였다. 그때 당시에 .aws를 삭제하라고만 스스로 적어 두었어서 도움이 안 됐다... AWS VPC 와 Bastion Host 1. VPC 가상 네트워크 2. 서브넷 VPC의 IP주소 범위 3. IP 주소 지정 IPv4와 IPv6 모두 할당 가능 4. 라우팅 라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정 5. 게이트웨이 VPC를 다른 네트워크에 연결 6. 엔드포인트 인터넷 게이트웨이 또는 NAT 장치를 사용하지 않고 AWS 서비스에 비공개로 연결 7. VPN 연결 AWS VPN을 사용하여 온프레미스 네트워크에 VPC를 연결합니다. * 탄력적 IP 주소(EIP): EC2 인스턴스, 탄력적 네트워크 인터페이스 또는 AWS 리소스와 연결할 수 있는 Amazon에서 제공하는 정적 퍼블릭 IPv4 주소 Bastion Host : 보안을 위해 고안된 Host (문지기 역할) Private IP로만.. codedeploy : AccessDeniedException 이 친구가 또 생명 주기 에러를 뱉기 시작했다.... 저번에 같은 경험이 있어서 로그를 살펴보니 또 같은 에러였다. 그때 당시에 .aws를 삭제하라고만 스스로 적어 두었어서 도움이 안 됐다. 매번 잊어버리는 나를 위해 이번에는 명령어까지 적어놔야겠다. # AWS 자격증명 파일 삭제 $ sudo rm -rf /root/.aws/credentials # codedeploy-agent 재시작 $ sudo systemctl restart codedeploy-agent 이제 배포는 해결 된 것 같다. 실행이 관건이다. 참고 자료 : https://velog.io/@gingaminga/AwsCodeDeployCommandErrorsAccessDeniedException TCP 서버 망형 토폴로지에서 데이터 수정 후 조회 속도 개선 문제 수정 후에 반영 속도가 3초 이상이다. 시도 if (data.method == 'GET' && data.uri == '/boards/posts' && data.params.postId) { if (query) { responseData = await Posts.findByPk(query.postId, { raw: true }); this.connectToUsers( process.env.HOST, process.env.USERS_PORT, (data) => { // Users 접속 this.data = data; }, responseData.userId, ); responseData.nickname = this.data.responseData[0].nickname; } 전체 조회를 한 뒤 정보를 추.. WIL 20230820 0. 기간 : 20230814~ 20230820 1-1. 이번 주 동안 있었던 일 최종 프로젝트 시작 마이크로 서비스 아키텍처 공부 1-2. 이번 주 체크리스트 [ O ] 예쁜 말로 협업하였는가? [ O ] 12시간 동안 몰입하였는가? [ O ] 코딩 시 복사 + 붙여넣기를 하지 않았는가? [ ? ] 친절한 개발자였는가? [ O ] 이번 주를 평가하였을 때 주니어 개발자가 될 수 있겠는가? 2. 이번 주 소감 이번 주에는 많은 것들을 배울 수 있었다. TCP서버를 처음으로 접하게 되었는데 너무 기뻤다. 3. 이번 주에 배운 것 3-1. 마이크로 서비스 아키텍처 : 서비스 단위로 서버를 나누어 운영하는 설계 방법 service> (tcp) > gateway > (http) > client gateway :.. 망형 토폴로지의 DB에서 수정된 정보 조회 시 반영 문제 수정은 되는데 수정된 내용이 반영되지 않는다. 시도 this.connectToUsers(process.env.HOST, process.env.USERS_PORT, (data) => { // Users 접속 this.data = data; }); DB를 작업이 필요할 때 1번 더 불러온다. 해결 속도가 느리나 되기는 됨. 두 세 번 클릭해야 되고 운이 좋으면 한 번에 됨. 알게 된 점 성능 개선이 필요하다. 망형 토폴로지에 대한 고찰 문제 내가 구축한 건 API와 API사이의 다리이다. 서비스와 서비스를 이어야 한다. 시도 1. distributor와 비슷한 users.topology.js 파일을 만든다. 2. Users 전체 정보 조회 url을 기준으로 정보 조회가 가능한 서버를 만든다. 3. 함수를 불러오면 실행이 된다. users.topology.js import TcpServer from '../classes/server'; import { makePacket } from '../utils/makePacket.js'; import dotenv from 'dotenv'; dotenv.config(); // 접속 노드 관리 오브젝트 // Server 클래스 상속 class usersTopology extends TcpServer .. 이전 1 2 3 4 5 6 ··· 14 다음