본문 바로가기

전체 글

(148)
유저 수정 기능 + API 명세서 작성 # 유저 정보 수정 기능 추가 저번에 까먹고 안만든 유저 수정 기능을 할 차례이다. 비밀번호는 따로 암호화를 해줘야하기에 비밀번호 빼고 다른 정보들만 수정 가능하게 만들었다. # serializers.py class UserSerializer(serializers.ModelSerializer): class Meta: model = User fields=['id', 'username','nickname', 'email', 'gender', 'age'] gender_list = ( ('남', '남'), ('여', '여') ) username = serializers.CharField(max_length=20) # 아이디 email = serializers.EmailField() nickname = seria..
Django 기초 + 유저 기능 만들기 # 개발 전 git 관리 졸업 프로젝트 기능과 디자인을 구체화했으니 기능을 만든다. 먼저, 기능을 구별해서 만들기 위해 branch를 분리했다. 기능이 완성될 때마다 merge를 해준다. 원래 다른 사람들이 체크하고 충돌안나는지 확인하고 복잡하지만 1인 개발인 나는 그런거 신경쓰지 않는다! 작업할 branch 업데이트 완료! commit하고 push할 때 따로 만들어줘도 된다. 근데 그냥 지금 옮김. # 장고란? Django는 가장 많이 사용되는 Python 기반 웹 프레임워크 중 하나이다. MTV 패턴으로 제작하고, Model과 DB의 연동이 쉽다. 또 관리자 페이지나 여러 편리한 로직을 따로 제공하여 처음 접하기 쉬움. 게다가 ORM을 제공한다. 쉽고 Model을 짜면 Django가 알아서 DB를 짜..
Do it 웹사이트 따라 만들기 - 구글 API로 Contact Us 폼 처리하기 # 10-1. 구글 앱스 메일로 가상 서버 만들기 구글에서 제공하며, 우리가 만든 폼을 처리해주기 위한 API이다. HTML 파일 안에서 태그에 mailto 속성으로 메일을 보낼 수 있다. 자신의 구글 계정으로 로그인한 후 docs.google.com/spreadsheets/u/1/d/1Bn4m6iA_Xch1zzhNvo_6CoQWqOAgwwkOWJKC-phHx2Q/copy 를 복사해 브라우저 창에 붙여 넣고 이동한다. 엑셀 시트 상단 메뉴에서 도구 -> 스크립트 편집기를 선택한다.(지금은 확장 프로그램 -> add script로 변경) 스크립트 파일이 나오면 주석을 삭제하고 박스로 메일 자리에 본인 메일 주소를 입력한다. 상단 메뉴의 파일 -> 버전 관리를 선택하여 텍스트 입력창에 사용할 스크립트의 제목..
Do it 웹사이트 따라 만들기 -Contact Us 페이지 만들기 # 9-1. 폼 요소 살펴보기 폼 태그 form : 서버와의 상호작용을 위한 콘텐츠로, 사용자의 요청을 받고 서버에서 그에 따른 처리를 진행한다. 동작 과정 폼 내용을 입력 한 후 폼 안에 있는 모든 데이터를 웹 서버로 보낸다. 웹 서버는 폼 데이터를 처리하기 위해 폼 안에 있는 데이터를 웹 프로그램으로 보낸다. 웹 프로그램은 데이터를 처리한 후 결과를 웹 서버로 보낸다. 웹 서버에서 받은 결과를 브라우저에 보내 사용자가 볼 수 있게 된다. 폼 태그 속성 action : 폼을 통해 전송한 정보를 처리하는 웹 페이지의 URL을 나타낸다. method(default = get) : 브라우저가 폼을 전송하기 위해 사용하는 HTTP의 방식을 지정한다. 이 속성값은 get 또는 post 중 한 개를 갖는다. au..
Do it 웹사이트 따라 만들기 - FAQ 페이지 만들기 # 8-1. 사용자 인터페이스 이해하기 사용자 인터페이스란? 사용자와 시스템이 정보를 주고받기 위해 상호작용을 하는 의사소통 시스템 사용자를 위해 편의성을 고려하고, 시맨틱 마크업을 통해 시스템 배려를 고려한다. 좋은 사용자 인터페이스 만들기 간결하고 직관적으로 표현하기 일관성 있게 구현하기 명확하게 구현하기 # 8-2. 아코디언 형태로 FAQ 만들기 html 파일의 태그에서 으로 제목을 작성하고 .tit_faq 클래스를 지정한다. 제목과 제목 설명이 다른 스타일이 적용되도록 다른 태그를 사용한다. 제목은 , 설명은 태그로 작성한다. css파일에서 .tit_faq의 선택자로 작성한 후 공통인 폰트 색상은 상속을 받아 지정한다. 태그에 font-size와 padding-right 속성값을 지정한다. 태그 ..
[JAVA] 브루트 포스 브루트 포스란? 모든 경우의 수를 돌려보는...무식하지만 확실한 방법이다. 2798 블랙잭 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.IOException; //import java.io.BufferedWriter; //import java.io.OutputStreamWriter; //import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new ..
Do it 웹사이트 따라 만들기 - 도서소개 페이지 추가하기 # 7-1. Ajax 사용하기 내용이 많아지고 하나의 태그 안에 많은 내용을 표현할 경우 페이리 로딩 속도가 느려질 수 있다. 따라서 도서별 상세 페이지를 따로 만들고, Ajax를 사용해 패당 페이지가 표시되는 동적화면을 만드는 것이 좋다. 대부분의 브라우저에서는 XSS를 막기 위해 요청한 페이지의 도메인과 HTTP 응답의 도메인이 상이할 경우 응답을 거부하는 보안 정책이 적용한다. 이런 경우 Ajax가 동작하지 않는데, 브라우저의 속성 - 대상에서 한 칸을 띄고 --allow-file-access-from-files 옵션을 추가하면 Ajax가 로컬에서 동작이 가능한 상태가 된다. class="detail_content"로 그룹화한 도서 상세 내용 페이지를 별도의 페이지로 만든다. Ajax로 불러오는 내..
[JAVA] 시간 복잡도 단계 24262 알고리즘 수업 - 알고리즘 수행 시간 1 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.io.IOException; //import java.io.BufferedWriter; //import java.io.OutputStreamWriter; //import java.util.Arrays; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syst..