
1.Serializer 직렬화를 해주는 일종의 도구 장고에만 특별히 존재하는 기능이라기보다는 대부분의 프레임워크에 존재하는 일반적인 개념임 장고 Form과의 유사성 장고의 Serializer는 장고의 Form(Model Form) 과 많이 유사하다. 기능적으로 비교하자면 Serializer는 POST요청만 처리하는 FORM이라고 볼 수 있음. Form : Form 태그가 포함된 HTML 태그를 생성 Serializer : Form 데이터가 포함된 JSON문자열을 생성 둘 다 입력된 데이터에 대한 유효성 검사 진행 가능 Serializer의 기능 데이터 변환 및 직렬화 지원(JSON 포맷 등) 입력된 JSON 포맷에 대한 유효성검사 LIST/CREATE을 포함하여 특정 record(데이터)에 대한 ret..

통신 방식의 변화 기존에는 Get 요청 > HTML Form 포멧으로 응답 Post 요청시 multipart/form-data인코딩을 요청하고(데이터를 전송하고) HTML 포맷으로 응답 최근에는 API 서버에서 대개 JSON 인코딩된 요청을 응답(JSON을 활용하여 요청 및 응답) 직렬화 어떤 프로그래밍 언어를 사용하든지, 통신에서 데이터는 필히 문자열로 표현되어야 함 송신자 : 데이터인 객체를 직렬화를 통해 문자열로 변환하여 전송 수신자 : 수신한 문자열을 비직렬화를 통해 객체데이터로 변환하여 활용 Json, XML등은 모든 언어에서 지원하는 직렬화 포멧임. 즉 어떤언어에서든 통신을 위한 수단으로 사용될 수 있기에, 다른 언어들 간의 소통도 가능하다 다른 말로 하면, 모든 언어가 Json/XML 등에 ..


1. Logging ORM은 사용자의 의도에 맞는 SQL문을 생성하여 DB에 요청을 보내는 도구이다. 분명 편리하지만, ORM이 만들어주는 SQL문은 늘 최적화된 SQL문이라고 확신할 수 없다. 특히 SQL문이 쓸데없이 DB에 요청을 많이 보낼 경우 성능적으로 굉장히 부정적인 효과가 발생함 따라서 실제로 어떤 SQL문이 얼마나 DB로 보내지는지 확인이 필요하고, 이를 확인하기 위해 Logging을 사용한다. 참고)DB의 성능이슈는 주로 데이터를 읽을 때 발생함. 다른 기능(Create, Update, Delete)에서는 잘 발생하지 않음. 따라서 대부분의 DB(Mysql, Oracle..)등은 읽기에 최적화된 상태로 나옴 How to Logging 1)서버에 의해 뷰가 호출될때마다 쿼리가 찍히도록 하는..


S3란 S3스토리지 타입 / Object의 구성요소 / Data consistency Model / S3요금 S3 암호화 / 접근권한 / CORS S3 실습 1. S3(Simple Storage Service) 안전하고 가변적인 object 저장공간 안전 : 모든 파일에 일종의 안전장치를 걸어, 허락되지 않은 외부의 접근을 막음 가변 : 저장된 파일들의 크기에 맞춰 저장공간의 크기가 자동으로 커졌다 줄어들었다 함 object : 이미지, 파일, 영상 등만 올릴 수 있는 것 > 운영체제를 업로드해서 사용이 불가능(즉 윈도우 파일등을 넣어 부팅 같은 것이 불가능) 편리한 UI : 어디서나 쉽게 데이터의 저장 및 로드가 가능 파일 크기는 최대 0~5TB까지 가능 저장공간 무제한 : 가변적인 S3의 특성상, 전..


RDS 백업기능 Multi-Az / Read Replica Elastic Cache RDS실습 파라미터 그룹 설정 rds 생성 mysql데이터복사 및 rds로 전송 ec2와 연결 장고서버구동 read replica / multi-az / rds삭제 1. RDS 관계형 DB AWS에서 사용될 수 있는 DB의 종류는 다음과 같다 Microsoft SQL, Oracle, Mysql, Postgre, MariaDB Aurora : AWS에서 제공하는 RDS. 프리티어가 없다. 모든 RDS는 자기만의 고유한 endpoint를 가지며, 이를 통해 식별된다 Data warehousing 방대한 양의 데이터를 로드할 떄 주로 사용 따라서 Business Intelligence와 같이 방대한 양의 데이터를 기반으로 하는..


Software testing Manutal Testing vs Automation Testing system test 전략 3가지 유닛테스트(장고) 1. software testing 배포전에 개발한 상품을 처음부터 끝까지 테스팅하는 것 결함을 아주 직관적으로 + 상세히 확인하고, 에러를 사전에 방지할 수 있다. 그 외에도, 시간 절약 / 코드의 효율적인 개선 / 품질개선 실제로 테스팅을 위한 코드작성시간이 전체작업중에 40% 이상을 차지한다. manual testing VS automating testing manual testing 사람이 직접 손으로 이것저것 해보는 테스트 불안정성, 비용, 인력소모가 증가 & 테스트 속도 감소 Automation Testing testing 자체를 반복성, 재사용..


Oauth 2.0 생활코딩 강의를 참고(https://www.youtube.com/watch?v=hm2r6LtUbk8&list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-&index=1) 0. 역할(호칭) 정리 Oauth2.0은 양자가 아닌 삼자의 이야기임. 따라서 미리 Oauth2.0 에 등장하는 호칭들을 정리 우리의 서비스 : Client 우리서비스의 사용자 : Resource Owner 우리서비스가 빌려쓰려는 다른 서비스(카카오) : Resource Server 추가)공식문서에 따르면 Resourceserver의 권한에 대한 처리를 진행하는 autrhorization server를 언급하기도 함 1. Oauth 2.0이 필요한 이유 나의 서비스(Client)에 다른 서비스(Reso..

EC2의 개념 EBS의 개념 ELB의 개념 Route53 1.EC2 클라우드 공간에서 크기가 유연하게 변경되는 서버를 제공 EC2 사용시의 다양한 지불방법 On-demand : 시간 단위로 가격이 고정되어 있음. 즉 시간에 비례한 가격을 지불 서버를 열고 닫는 게 자유롭기 때문에 개발 시작 시간 및 개발 종료 시간을 모르는 경우에 많이 사용.(특히 단기간) Reserved : 일정한 크기의 EC2 용량을 조금 더 저렴하게 사용가능. 대신 1-3년간 시간을 정해서 대여(시간별로 할인이 다름) 개발의 시작과 끝이 예상가능할 경우. Spot : 마치 경매의 입찰방식을 통한 가격을 적용. 가장 큰 할인율을 적용받음 단순한 비용절감에 가장 효율적인 방안. 인스턴스의 시작/끝시점이 별로 중요하지 않을 경우에 많이 ..


1차 프로젝트에 대한 회고 vivino사이트를 뼈대로, 새롭게 컨셉을 잡은 Hangover라는 사이트 개발에 백엔드개발자로서 참여 시연영상 : https://www.youtube.com/watch?v=KVso2gmJGH8 백엔드 github : https://github.com/wecode-bootcamp-korea/32-1st-Hangover-backend 내가 맡았던 기능 메인페이지(캐러셀)의 상품리스트 검색창 특정 카테고리와 일치하는 검색어가 입력될 경우, 해당 카테고리에 속하는 상품을 반환 카테고리에 일치하는 상품이 없을 경우, 검색어가 상품명에 포함되는 상품을 반환 검색어가 상품명&카테고리에 포함되지 않을 경우, 추천검색어를 반환 필터페이지 가격, 주종, 잘어울리는 음식, 원산지 등 다양한 필터..

참고한 사이트 두곳 westudy : https://study.wecode.co.kr/session/content/154 승연님 블로그 : https://www.notion.so/da95f69812b14ca79181bc4d62d63e76#56b8028e72e141a0a3c6e4f3212adc97 HOMEBREW 홈브루 설치 다음을 따라서 하면 됨 : https://eunhee-programming.tistory.com/259 MYSQL mysql 영역은 승연님 블로깅에서 MYSQL부분을 참조 https://www.notion.so/da95f69812b14ca79181bc4d62d63e76#56b8028e72e141a0a3c6e4f3212adc97 Error: Can't connect to local My..

IAM(Identity and Access Management) 사용자들의 계정에 대한 관리 유저를 관리하고 접근 레벨 및 권한에 대한 관리를 가능케 해줌 universal 함. 즉 지역 설정이 필요 없음! 루트 유저 새로운 계정을 생성하면, 그 계정은 루트유저가 됨. 루트 유저는 모든 권한을 가지고 있는 슈퍼유저를 의미 여담이지만, 루트 유저는 패스워드 입력외에도 구글이나 페이스북을 활용해 보안을 강화하는 다중 인증 기능을 해야한다고 아마존에서 적극 권장 유저의 생성 루트 유저는 다른 유저를 생성하고, 그 유저의 접근키와 비밀키를 생성해줄 수 있음 생성된 유저는 접근키와 비밀키를 가지고 AWS의 다양한 서비스에 접근가능 접근키와 비밀키는 비밀번호같은 것은 아님 루트유저는 생성한 유저의 권한을 세밀하게 ..


Network port forwarding 동일한 wifi내에서는 원격통신이 가능함 그러나 WSL환경에서 동일wifi내의 원격통신을 성공시키기 위해선 추가적인 조치가 필요하며, 그게 network port forwarding임 참고)https://study.wecode.co.kr/session/content/158 Network port forwarding 순서 1) ubuntu환경의 적당한 경로에서 forwarding script작성 touch ports_wsl.ps1 : ports_wsl.ps1 파일 생성 vi ports_wsl.ps1 : 파일 편집기 실행 i를 누르면 편집이 시작됨 복사해서 코드를 붙여 넣고 나서 esc를 누르고 :wq 를 입력하면 복사한 내용이 저장됨 $remoteport = ba..

git을 활용한 작업 flow 1. main 브랜치 생성 및 main 브랜치에서 초기세팅 완료 2. main브랜치 github에 push 3. 작업하려는 로컬에서 해당 github의 main을 clone 4. 작업내용에 알맞는 git branch 생성 및 해당브랜치로 이동해서 작업 진행(생성 후 이동하는 것 까먹지 말것!!!) 5. 해당 브랜치에서 작업완료 후, main브랜치로 이동하여 github의 main을 pull git pull origin main 다른 누군가 작업을 먼저 완료하고 github의 main브랜치에 merge를 완료하여 , 현재 내가 가진 main보다 최신버전이 있을 수 있기 때문 main을 pull 한 후에, 꼭 git status를 찍어서 commit이 필요할 경우 commit실..

서론 위코드가 시작한지 벌써 4주가 지났다. 시간이 어떻게 지나갔는지 모르겠다 ㅋㅋㅋ 그래도 만족스러운 부분은 엄청 빠르게 지나가는 시간속에서 어느정도 내 템포를 찾은 느낌이다. 무엇보다 장고 세션이 시작되었는데, 그동안 애매하고 막연하게만 느껴지던 개념들이 조금씩 정리되는 느낌이라 조금 만족스럽다. 요약하자면 살짝 버겁긴 하지만 버거움의 가치가 느껴져서 꽤 즐겁기도 하다. 사실 지난번에 기간일기를 쓸 때, 아마 부트캠프가 끝날 때까지는 글을 쓰지 않을 줄 알았다. 지금도 솔직히 3주간의 감상같은 걸 녹여내는 글에 시간을 할애하는게 아깝기도 하다. 그럼에도 억지로 글을 쓰는 건, 학습의 방향성이나, 개인적으로 개발자로서의 마음가짐에 좀 변화가 있어서 지금 이순간의 방향전환이나 마음가짐을 기록해 두고 싶기..