jscode
@jscode
Học viên
32,149
Đánh giá khóa học
2,398
Đánh giá khóa học
4.9
[Sites]
Youtube 바로가기
LinkedIn 바로가기
[Career]
現) JSCODE - 대표 멘토, CEO
前) (주)트라이포드랩 - CTO
前) (주)온리원유니버스 - CTO
前) 달리(DALY) - CTO
前) 팀메이트(Teammate) - CEO
[Books]
『Do it! JSCODE의 AWS 입문』, 이지스퍼블리싱 (2025.05)
[ETC]
- 기업 대상 개발 컨설팅 및 코딩 교육 활동
Khóa học
Đánh giá khóa học
- Redis trung cấp/thực hành mà người không chuyên cũng có thể hiểu được
hwayeon01255461
·
Ôn thi cấp tốc chứng chỉ AWS SAA-C03 - Vượt qua kỳ thi trong 2 tuần chỉ với đúng 163 câu hỏiÔn thi cấp tốc chứng chỉ AWS SAA-C03 - Vượt qua kỳ thi trong 2 tuần chỉ với đúng 163 câu hỏidecomand6918
·
Ôn thi cấp tốc chứng chỉ AWS SAA-C03 - Vượt qua kỳ thi trong 2 tuần chỉ với đúng 163 câu hỏiÔn thi cấp tốc chứng chỉ AWS SAA-C03 - Vượt qua kỳ thi trong 2 tuần chỉ với đúng 163 câu hỏi- Nhập môn và thực hành Docker dành cho cả người không chuyên ngành kỹ thuật
- Nhập môn và thực hành Docker dành cho cả người không chuyên ngành kỹ thuật
Bài viết
Hỏi & Đáp
규칙 1에 대해서
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~ "왜 이 중복을 밑으로 나열하는지 모르겠어여"-> 우선 중요한 건 관계에요 !좋아요는 한 명의 사용자가 여러 게시글에 누를 수 있고, 하나의 게시글에 여러 명의 사용자가 누를 수 있어요 ~즉, users와 posts 사이의 관계는 N:M 관계에요 !이런 경우에는 어느 한쪽 테이블에 FK를 넣어도 결국 한 칸에 여러 값이 들어가는 구조가 되어버려요 ~그래서 중간 테이블(likes)을 따로 만들어서 “사용자 id + 게시글 id”를 한 줄에 하나씩 저장하는 방식으로 풀어야 해요 !중복을 밑으로 나열하는 게 아니라, 관계를 행(Row)으로 표현하는 것이라고 이해하시면 돼요 !관계형 데이터베이스에서는 “여러 개의 관계”를 한 칸에 넣지 않고, 여러 행으로 표현하는 게 원칙이에요:)추가로 궁금한 점 있으시면 언제든 질문 남겨주세요~~
- 0
- 2
- 17
Hỏi & Đáp
강사님도 실제로 구글 시트에 이런식으로 적으면서하는걸까요?!
안녕하세요 Teo님! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"강사님도 실제로 구글 시트에 이런식으로 적으면서하는걸까요?!"-> 네 맞아요 ! 저도 실제로 DB 설계할 때 구글 시트나 A4 용지에 정리하면서 작업해요 ~ 머리로만 하기엔 테이블 간의 관계, 컬럼명, 데이터 타입 같은 게 너무 복잡해서 헷갈리기 쉽거든요 !머리속으로만 하면 테이블 간의 관계나 컬럼들이 헷갈리기 쉬우니까, 적어가면서 하시면 훨씬 편하더라구요 :) "완성된 스키마들을 스프레드 시트같은곳에 보통 타입이랑 컬럼명 정리해서 적어놓는편이실까요?!"-> 이 부분은 상황에 따라 다른데요! 혼자 진행하는 프로젝트에서는 굳이 별도로 정리하지 않고 DB 관리 툴(MySQL Workbench, DBeaver 등)에서 직접 확인하는 것만으로도 충분해요 ! 다만 팀 프로젝트나 회사에서 여러 개발자가 함께 작업하는 경우에는 ERD 작성 툴(https://www.erdcloud.com/ )활용해서 테이블 구조를 정리해두는 경우가 많아요! ERD로 정리해두면 팀원들끼리 DB 구조를 소통할 때 훨씬 편하거든요~~정리하면, 설계 단계에서는 엑셀이나 구글 시트에 적어가면서 진행하시고, 완성 후에는 ERD 툴로 정리해두시면 나중에 유지보수할 때도 편하실 거예요!추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 32
Hỏi & Đáp
권한 기본값 질문
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"리눅스에서 파일은 666, 디렉토리는 777 기본 권한을 가지고 있는데 파일 기본 권한에 실행(x) 권한이 없는 이유는 대다수 파일이 실행파일이 아니여서일까요??"-> 네 ! 말씀해주신 추측이 맞아요 !리눅스에서 다루는 대부분의 파일은 텍스트 파일, 설정 파일, 로그 파일 등 읽고 쓰기만 하면 되는 파일들이에요 !실행 권한이 필요한 파일은 쉘 스크립트나 바이너리 실행 파일 등 일부에 해당하구요 ! 그래서 기본적으로는 실행 권한을 빼두고, 필요한 경우에만 chmod를 활용해서 실행 권한을 부여하는 방식으로 운영해요 ~추가로 보안적인 이유도 있는데요, 만약 모든 파일에 기본적으로 실행 권한이 붙어있다면 악성 스크립트나 의도치 않은 파일이 실수로 실행될 위험이 있어요 ! 그래서 보안을 위해서라도 기본 권한에서 실행(x)을 제외해두는 거예요 !추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 30
Hỏi & Đáp
혹시 아파치 서버 관련 책이나 사이트도 추천해주실수 있으신가요..?
안녕하세요 태현 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"혹시 아파치 서버 관련 책이나 사이트도 추천해주실수 있으신가요..?"-> 우선 제가 Apache를 깊게 다뤄본 경험이 많지 않아서 특정 책이나 강의를 자신 있게 추천드리기는 어려습니다ㅠㅠ다만 Apache 공식 문서(https://httpd.apache.org/docs/)가 생각보다 잘 정리되어 있어서, 유지보수하시면서 필요한 설정이나 모듈을 찾아보실 때 공식 문서를 기반으로 학습하시는 걸 추천드려요 !그리고 Apache도 Nginx와 마찬가지로 웹 서버이다 보니, 강의에서 배우신 리버스 프록시, HTTPS 적용, 요청 수 제한 같은 개념들은 Apache에서도 동일하게 적용돼요 !개념을 이미 알고 계시니 Apache에서는 해당 개념을 어떤 설정으로 구현하는지만 찾아보시면 훨씬 수월하게 학습하실 수 있을 거예요 :)추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 36
Hỏi & Đáp
스프링부트 서버에 proxy_pass 할 때 질문 있습니다
안녕하세요 태현님 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~결론부터 말씀드리면 Nginx에서 Spring Boot로 갈 때 http://를 사용해도 괜찮아요 !말씀해주신 대로 [브라우저] ← HTTPS → [Nginx] ← HTTP → [Spring Boot :8080] 이 구조가 맞아요 !이렇게 구성해도 되는 이유는 Nginx와 Spring Boot가 같은 EC2 서버 내부에서 통신하기 때문이에요 ~외부 인터넷을 타지 않고 서버 내부(localhost)에서만 주고받는 트래픽이라 중간에 누군가가 패킷을 가로채는 것이 사실상 불가능해요 !그래서 내부 통신은 HTTP로 처리하는 게 일반적인 구성이에요 !HTTPS가 필요한 이유는 외부 네트워크를 통해 데이터가 오갈 때 도청이나 변조를 막기 위한 것인데, 이 역할을 Nginx가 앞단에서 이미 처리해주고 있는 거라고 이해하시면 돼요 :)추가로 또 궁금하신 점 있으시면 언제든 추가 질문 남겨주세요~~
- 0
- 2
- 30
Hỏi & Đáp
aws 인스턴스 삭제 관련 질문
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"인스턴스삭제 및 탄력적ip제거를 했는데 인스턴스 상태 종료됨으로 떴으나 ID가 여전히 남아있는데 괜찮을까요?"-> 네 ! 전혀 걱정하지 않으셔도 괜찮아요 ~인스턴스 상태가 "종료됨"으로 표시되고 있다면 정상적으로 삭제(terminate)가 완료된 상태에요 !종료된 인스턴스는 AWS에서 일정 시간이 지나면 자동으로 목록에서 사라지게 되어 있어서, 지금 ID가 남아있는 것은 아직 그 시간이 지나지 않은 것뿐이에요! 보통 몇 시간 정도 지나면 자연스럽게 목록에서 없어지니 따로 추가 작업을 하실 필요는 없어요 !탄력적 IP도 제거하셨다고 하셨으니 추가 비용이 발생할 걱정도 없어요 :)추가로 궁금하신 점 있으시면 또 질문 남겨주세요~~
- 0
- 2
- 36
Hỏi & Đáp
aws에서 msyql,nginx,certbot다 설치하기
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~말씀하신 대로 EC2 하나에 Nginx, Certbot, MySQL을 모두 설치하는 방식은 초보자 입장에서 가장 단순하고 이해하기 쉬운 구조가 맞아요 ! 특히 학부 졸업 프로젝트처럼 빠르게 배포하고 완성하는 게 목표인 상황에서는 충분히 좋은 선택이라고 생각해요 !다만 몇 가지 고려하시면 좋을 점들이 있어요!우선 WebSocket, 마이크 기능, 채팅 기능이 포함되어 있다고 하셨는데, 이런 실시간 통신 기능들은 서버 리소스를 꽤 많이 사용하는 편이에요 !그래서 EC2 인스턴스의 성능(CPU, 메모리)을 넉넉하게 선택하시는 게 좋을 것 같아요! 프리티어의 t2.micro는 테스트용으로는 괜찮지만, 실제 여러 명이 동시에 사용하는 상황에서는 버거울 수 있어요 ~그리고 음성통화 기능과 Redis가 추가될 예정이라고 하셨는데, 하나의 EC2에 모든 걸 올리면 관리는 편하지만 나중에 특정 기능에 문제가 생겼을 때 전체 서비스에 영향을 줄 수 있다는 점도 참고하시면 좋아요 ! 하지만 졸업 프로젝트 목적이라면 이 정도 리스크는 충분히 감수할 만하다고 생각해요 ! MySQL도 같은 EC2에 설치하시는 건 괜찮은데, 데이터베이스는 정기적으로 백업을 해두시는 게 안전해요 :)결론적으로 AWS를 처음 배우시는 상황에서 빠르게 졸업 프로젝트를 완성하는 게 목표라면 말씀하신 방식으로 진행하셔도 충분해요 !나중에 실제 서비스를 운영하거나 더 큰 규모의 프로젝트를 하실 때는 RDS(데이터베이스 분리), Load Balancer, Auto Scaling 같은 걸 고려하시면 되구요 !추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 41
Hỏi & Đáp
만약 신고사유가 객관식 다운드롭형태일때는 테이블을 따로 분리하는건가요??
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"만약 신고사유가 객관식 다운드롭형태일때는 테이블을 따로 분리하는건가요??"-> 말씀하신 대로 신고사유가 고정된 선택지로 제공되는 경우라면 신고사유 테이블을 별도로 분리하는 방식이 일반적이에요 !이렇게 하면 신고 테이블에서는 신고사유 테이블의 ID를 외래키로 참조하는 형태가 되죠 ~다만 꼭 테이블을 분리해야만 하는 건 아니에요!신고사유의 종류가 적고 거의 변하지 않는다면 ENUM 타입이나 코드값으로 신고 테이블에 직접 저장하는 방법도 있어요 ~예를 들어 신고사유를 "SPAM", "ABUSE", "AD" 이런 식으로 문자열이나 숫자 코드로 저장하는 거죠:)정리하자면 신고사유가 자주 추가되거나 변경될 가능성이 있다면 별도 테이블로 분리하는 게 유지보수에 유리하고, 거의 고정된 값이라면 ENUM이나 코드값으로 처리해도 충분해요 !추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 30
Hỏi & Đáp
리더 파티션 선출 규칙에 관한 질문
안녕하세요 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"예를들면 파티션에 1,2,3 번 replica가 있었고 리더였던 1번 replica가 중단됐을 경우 2번, 3번 replica 중 어떤 것이 리더가 되는지 궁금합니다."-> 리더 파티션 선출 규칙과 관련해서는 기본적으로 ISR(In-Sync Replicas) 목록에서 리더가 선출돼요 !이미지에서 보시면 Replicas: 3,1,2 이고 Isr: 1,2,3 으로 나와있는데요, 리더 선출 우선순위는 Replicas 목록의 순서를 따라요 ~즉 Replicas에 나열된 순서대로 ISR에 포함된 replica가 리더로 선출돼요!예를 들어 질문해주신 상황처럼 Replicas가 1,2,3 순서이고 1번 리더가 중단됐다면, Replicas 목록에서 1번 다음 순서인 2번이 ISR에 포함되어 있다면 2번이 새 리더로 선출돼요 !만약 2번도 ISR에서 빠져있다면 3번이 리더가 되는 식이에요 ~1번 노드에 장애가 발생했을 때 Leader: 2로 바뀌는 걸 확인하셨을 텐데 이게 바로 그 원리로 동작한 거죠 :)추가로 궁금하신 점 있으시면 언제든 편하게 질문 남겨주세요~~
- 0
- 2
- 40
Hỏi & Đáp
[실습] 3. S3를 활용해 Express 서버에 이미지 업로드 기능 구현하기
안녕하세요 원준님 ! 질문 너무 잘해주셨어요 !질문해 주신 내용에 대해 답변드려볼게요 ~"이미지 업로드 하는데 에러가 발생 합니다. 뭐가 문제일까요.."-> 첨부해주신 Postman 화면을 보니 Error: connect ECONNREFUSED 127.0.0.1:80 에러가 발생하고 있네요!이 에러는 localhost의 80번 포트에 서버가 실행되고 있지 않아서 연결 자체가 안 되는 상황이에요 !우선 확인해보셔야 할 부분은, Express 서버가 정상적으로 실행되고 있는지에요 !터미널에서 node app.js 또는 npm start 명령어를 통해 서버를 먼저 실행하신 후에 Postman으로 요청을 보내셔야 해요 ~서버를 실행했을 때 터미널에 서버가 정상적으로 띄워졌다는 메시지가 나오는지 확인해보시면 좋을 것 같아요~~그리고 한 가지 더 확인해보셔야 할 부분이 있는데요, Express 서버가 실행되는 포트 번호가 80번이 맞는지도 체크해보셔야 해요 !만약 서버 코드에서 3000번 포트로 설정되어 있다면 Postman에서도 localhost:3000/upload로 요청을 보내셔야 해요 !Postman 화면을 보면 localhost:80/upload로 요청하고 계신데, 서버의 포트 번호와 일치하는지 확인해보세요!또한 .env 파일에 AWS 액세스 키, 시크릿 키, 버킷명이 잘 입력되어 있는지도 함께 확인해보시는걸 추천드려요 !정리하자면 아래 순서로 확인해보시면 될 것 같아요 !먼저 터미널에서 Express 서버를 실행하시고, 서버가 몇 번 포트에서 돌고 있는지 확인하신 다음, Postman의 URL에 해당 포트 번호를 맞춰서 요청을 보내보세요 :)혹시 서버 실행 시에도 에러가 발생하거나, 위 방법으로도 해결이 안 되시면 에러 메시지와 함께 댓글 한 번 더 남겨주세요~~
- 0
- 2
- 45




