분류 전체보기 103

mips pipeline datapath (컴퓨터구조 2022-2학기)

processor가 pipelining을 하려면 - load를 여러개의 sub-task로 나누어야 함 - 각 sub-task는 1-clock cycle에 수행됨 (즉 명령어 한개가 여러 clock cycle에 수행됨.) MIPS pipeline의 5 stage 1. IF = 메모리로부터 instruction을 fetch하는 스테이지 2. ID = fetch된 instruction을 decode하고, 필요한 레지스터 값을 읽어오는 스테이지 3. EX = instruction을 수행하거나, 메모리의 주소를 계산하는(lw, sw 등) 스테이지 4. MEM = 데이터메모리에 access해서 여기에 값을 쓰거나 읽는 스테이지 5. WB = 연산의 결과를 레지스터 파일에 쓰는 스테이지 위의 스테이지들은 각각 한 사..

컴퓨터 구조 2022.11.24

timezone설정이 일부 datetime_field에만 적용되는 이슈 해결방법

우선 db는 post모델과 advertisement모델을 1:1로 연결해서 글을 생성하는 구조로 되어있다. 그리고 각 모델의 코드는 아래와 같다. - post/models/post.py class Post(models.Model): """Model definition for Post.""" class Meta: db_table = 'posts' verbose_name = 'Post' verbose_name_plural = 'Posts' POST_TYPE = ( ('R', 'review'), ('C', 'clubpost'), ('A', 'advertisement'), ) title = models.CharField( max_length=20, null=False, verbose_name='제목' ) con..

django, drf 2022.11.17

drf dj_rest_auth 로그인 커스텀, non_field_error 해결방법

요즘 학교에서 알파프로젝트로 우리 학교 학생들을 위한 정보공유서비스를 만드는 중이다. 거기서 유저관련 기능을 구현하면서 알게된 dj_rest_auth로 로그인방식을 편하게 커스텀하는 방법을 공유하려고한다. 먼저 처음 로그인 오류를 만나게 된건 회원단계에서 이메일 인증을 하도록 구현하면서 시작됐다. 회원가입 이메일 인증 코드들을 살펴보면서 설정을 추가하다가 다음 설정을 추가하게 된다. ACCOUNT_AUTHENTICATION_METHOD = 'email' 이메일 인증을 위한 설정이라고 했고... 이름도 account authentication method... 당연히 이메일 인증을 하기위한 dj_rest_auth 기본 설정이라고 생각했다. 그리고 여기서 모든 문제가 시작됐다. ㅠㅠ 회원가입만 커스텀했을 뿐..

django, drf 2022.11.17

MIPS 어셈블리 명령어 (R,I,J format) 기계어로 표현하기

mips assembly instruction은 크게 세가지로 나뉜다. 산술/논리 연산 명령어 (add, addi, sub, and, or, sll, srl 등) 메모리 접근 명령어 (lw, sw 등) 분기 명령어 (j, jr, jal, beq, bne 등) 이렇게 다양한 명령어들은 각각의 format에 따라 다른 방식으로 기계어로 표현되는데, (명령어의 산술종류와 format은 관련이 없다. 같은 덧셈연산이라고 해도 add는 r-format, addi는 i-format이다.) 이 중에 R-format, I-format, J-format에 따라 어셈블리 명령어를 기계어로 바꾸는 어셈블 연습을 해보자. 각각의 instruction이 어떤 포맷인지는 다음 opcode table을 보면 빠르게 확인할 수 있다..

컴퓨터 구조 2022.10.25

깔끔한 파이썬 탄탄한 백엔드 - 파이썬으로 배우는 백엔드

동아리 친구가 공부하고 있는걸 보고 좋아보여서 따라산 책. 한국어로 나온 백엔드 개발관련 도서는 대부분 자바+스프링쪽에 몰려있어서 파이썬으로 구현하는 백엔드에 대해 이렇게 너무 가볍지도 어렵지도 않은 정도로 잘 설명해주는 책은 찾기가 어려웠다.... 그런데 이 책을 읽으면서 정말 너무 마음에 들어서 그런 아쉬움이 어느정도 해소되는 느낌이 들었다! 이 책은 큰 틀에서 현대 웹 시스템 구조, HTTP의 구조와 핵심요소, 미니터(트위터와 비슷한 기능이다.) 기능 개발, 데이터베이스 연결 및 사용, 인증 구현, unit test, aws, API 아키텍쳐, 파일 업로드 엔드포인트 등의 내용을 다루고 있다. 그 중 내가 가장 인상깊게 봤던 파트는 인증구현과 유닛테스트, API 아키텍쳐(코드 아키텍쳐) 부분인데, ..

독서 2022.10.25

국민은행 소프트웨어 경진대회(2022.07.17~2022.09.18)

이번 여름방학에 아이디어톤 끝나고 한달정도 있다가 국민은행 소프트웨어 경진대회 공모전을 발견하고 너무 출품해보고싶어서 동아리 친구들을 꼬셔서 플젝을 같이 했다! 백엔드 파트로 drf를 처음 써보는 플젝이었는데 공부할만한 한국어 자료가 엄청 많지는 않아서 처음에 공부하는 단계에서 좀 어려웠는데, 그래도 여기저기 나와있는 강의 이것저것+폭풍검색+질문으로 어떻게 잘 마무리했다ㅋㅋㅋㅋㅋㅋ 나도 나지만 다른 팀원들도 거의 drf나 리액트 처음 써봐서 고생이 많았는데 그래도 다같이 마지막까지 안놓고 열심히 해줘서 너무 고마운 마음이 든다. 솔직히 개강하기 전에 끝나는게 목표였는데 개강을 넘겨버려서 플젝이 흐지부지될까봐 좀 걱정했었는데 다들 마지막까지 같이 열심히 작업해서 제출까지 무사히 할 수 있었던것같다. 우리는..

팀 프로젝트 2022.09.28

dj-rest-auth/allauth를 이용한 회원가입기능 구현

이번 프로젝트에서는 drf와 react를 사용하고, 로그인 회원가입 기능도 dj-rest-auth와 alllauth를 사용해서 구현한다. drf를 처음 사용해봐서 지금 당장은 어려움이 있지만 또 하다보면 익숙해진다고 생각하고 열심히 해봐야겠다! 우선 models.py부터 보자! 여기선 다양한 필드를 받아야 하기 때문에 AbstractUser를 상속해서 유저를 확장해줬다. from django.contrib.auth.models import AbstractUser class User(AbstractUser): username = None email = models.EmailField(max_length=255, unique=True) USERNAME_FIELD = 'email' REQUIRED_FIELDS..

django, drf 2022.08.04

생활코딩 리액트 2022 ver (2)

* 본 포스팅은 생활코딩 리액트(2022)의 요약본입니다! 강의 링크는 포스팅 아래에 첨부하겠습니다 ^__^ **useState 추가개념 내가 상태로 만드려는 데이터가 원시타입일 경우에는 지금까지 하던것처럼 그냥 하면된다. 그런데 데이터가 범객체(객체, 배열 등)인 경우에는 좀 다른 방식으로 진행해야하는데 우선 데이터를 복제해놓고(newValue), 복제한 데이터를 변경한다. 다시말해 원본 데이터(value)를 바꾸는 것이 아니라, 복제본을 바꾸는 것이다. 그리고 setValue에 newValue를 넣어주면 그 때 비로소 컴포넌트가 재실행된다. 리액트는 setValue를 호출했을때, 원본 데이터와 새로운 데이터가 같은 데이터인지를 확인하고 만약 같다면 굳이 컴포넌트를 다시 렌더링하지 않는다. 그래서 배열..

기타 개발공부 2022.07.30

생활코딩 리액트 2022 ver (1)

* 본 포스팅은 생활코딩 리액트(2022)의 요약본입니다! 강의 링크는 포스팅 아래에 첨부하겠습니다 ^__^ 리액트란? 사용자 정의 태그를 만드는 기술이다! 이 사용자 정의 태그를 리액트에서는 '컴포넌트'라고 부른다. import React from "react"; import "./style.css"; function Header() { return ( Header! ) } function Nav() { return ( 1.html 2.css 3.js ) } function Article() { return ( Hello! Welcome to my Blog! ) } function App() { return ( ); } export default App; props html태그의 속성과 같은 개념을 리..

기타 개발공부 2022.07.30

사용한 라이브러리 관리

장고로 개발하는 중간중간에 설치해서 사용한 라이브러리를 텍스트파일로 편리하게 관리할 수 있다. 우선 장고앱아래에 requirements.txt 파일을 생성하고 그 아래에 장고 버전과 라이브러리명을 적는다. django~=3.0.0 #버전을 타는 경우에는 버전도 기재. 그렇지 않으면 굳이 안써도 됨! pillow 그리고 해당앱을 실행하기 위해 사용된 패키지를 설치할 필요가 있을 경우, 다음 명령어를 통해서 일괄설치가 가능하다. pip install -r requirements.txt

django, drf 2022.07.28