반응형

프로그래밍 135

[디자인 툴] 와이어프레임 부수기 Figma - (1) 컴포넌트와 인스턴스

프로젝트를 시작할 때 꼭 해야 하는 게 있다. 구상한 아이디어를 시각적으로 보여주는 와이어프레임 짜기. 처음 팀 프로젝트를 진행했을 때는 그냥 그림판으로 그리던가해서 허접하게 만들어서 썼다. 하지만 Figma를 알고 난 뒤 이걸 어떻게 하면 제대로 써볼까 하는 생각이 들어 이 글을 정리한다. 01. 컴포넌트와 인스턴스 피그마에도 컴포넌트와 인스턴스가 있다. 컴포넌트 : 디자인 전체에서 재사용할 수 있는 구성 단위 인스턴스 : 컴포넌트의 복사본. 컴포넌트의 모든 속성을 물려받는다 간단한 예제를 통해 컴포넌트와 인스턴스에 대해 알아보고 얼마나 유용한지도 알아보자. 그림과 텍스트로 이루어진 위와 같은 요소들이 있다고 하자. 우리는 저 포맷을 그대로 써서 옆과 아래에도 복사 붙여넣기를 열심히 해서 위의 사진처럼..

[Python] 함수 사용법 - (4) collections

Python 내장 모듈인 collections에 대해 알아보자. collections모듈은 기본 컨테이너 객체의 편리성을 더 확장시키는 특별한 컨테이너 데이터 타입들을 모아놓은 모듈이다. 즉, 기본 컨테이너 타입의 확장판. 각종 데이터들의 전처리를 위한 유용한 기능들이 있다. 추가적으로 파이썬에서 컨테이너란, 데이터의 종류에 무관하게 저장이 가능한 객체를 말한다. 해당되는 객체와 아닌 것을 비교해보면 쉬운데 list, dictionary, tuple, dict, str등이 컨테이너 타입이고 반대로 int, float 등은 데이터의 종류가 고정되어 있는 Literal한 타입이다. 실제로 컨테이너 객체 클래스들은 컨테이너 안에 어떤 값이 포함되어 있는지 확인할 수 있는 __contains__ 던더 메소드를 ..

[프로젝트] 07. 가계부 SNS - 리치메이커

수입/지출을 기록하면 일반적인 소비 성향과 유저의 소비 성향을 비교해 그래프로 보여주고 유저들이 만든 관심 가는 챌린지에 함께 도전해 목돈을 모으는 가계부 SNS 서비스 프로젝트 정보 프로젝트: 가계부 SNS 서비스 - 리치 메이커 개발기간: 2023.05.22 - 2023.05.29 ( 7일 ) 주요 기능: 영수증 AI 인식 기능, 지출 관리, 챌린지 역할 영수증 AI 인식 기능 그래프 기능 메인 페이지 개발 기술스택: 프로젝트 구성 ★ 프로젝트 구조 BE : Django Rest Framework FE : Vanilla JavaScript 주요 코드 리뷰 01. 쿼리스트링으로 response 다르게 받기 프론트엔드에서 백엔드인 장고로 챌린지 리스트 api를 요청할 때 view를 늘리고 싶지 않았다. ..

[Python] 의존성 관리툴 poetry

Poetry는 python 의존성 관리 및 패키징을 위한 관리툴로서 프로젝트에 사용하는 라이브러리를 체계적으로 관리할 수 있고 패키지를 PyPI에 쉽게 배포할 수 있는 강력한 도구다. 의존성 관리가 약한 venv모듈의 단점을 해결한 모습을 보여준다. 2018년 2월 21일에 첫 커밋이 올라온 비교적 따끈따끈한 프로젝트인만큼 2023년 5월 현재 1.5버전까지 출시됐고 파이썬 3.7 이상에서만 사용가능하다. 설치 Unix 기반 진영과 Windows 기반 진영의 설치 차이가 있다. Linux, macOS, Windows(WSL, Windows Subsystem for Linux) curl -sSL https://install.python-poetry.org | python3 - 몇몇 시스템에서 Python ..

[알고리즘] 02. 에라토스테네스의 체

소수를 판별하는데 자주 쓰이는 에라토스테네스의 체를 정리해보자. 벨로그에 정리했었지만 다시 한번 정리해보려고 한다. 소수(Prime number)란? 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수를 소수라고 정의한다. 소수를 작은 순서대로 나열하면 2, 3, 5, 7, 11, 13, 17, 19, 23...이며 코딩테스트를 준비한다면 바로바로 생각할 수 있게 2, 3, 5, 7까진 외워두는 것이 좋다. 소인수분해(소수의 곱) 문제를 풀 때도 소수는 중요한 부분을 차지한다. 반대로 소수가 아닌 수는 합성수라고 한다. 에라토스테네스의 체(Sieve of Eratosthenes) 에라토스테네스의 체는 고대 그리스의 수학자인 에라토스테네스가 발견한 소수를 구하는 방법으로 2의 배수, 3의 배수 등을..

[Python] 데이터사이언스를 위한 NumPy - (2) 인덱싱, 슬라이싱 Ⅰ

NumPy의 꽃 Indexing과 Slicing이다. 다차원 배열에서 사용자가 원하는 요소만 정확히 골라내기 위해선 Indexing과 Slicing에 대한 이해가 필요하다. NumPy 배열를 다룰 때는 기본적으로 Python 시퀀스처럼 다루면 되므로 크게 어렵지 않다. 이번 글에서는 기본 인덱싱을 알아보자. 기본 인덱싱(Basic indexing) 단일 요소 인덱싱(Single element indexing) 단일 요소를 인덱싱할 때는 Python 인덱싱과 정확히 똑같이 동작한다. import numpy as np x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # 1 print(x[4], x[-2]) # 2 print(x.shape) x.shape = (3, 3) print(..

[Python] 데이터사이언스를 위한 NumPy - (1) 배열 생성

NumPy(Numerical Python)는 수치해석과 통계를 위한 오픈 소스 파이썬 라이브러리로 단독적으로 쓰이기도 하지만 보통 Scipy, Pandas, matplotlib과 같은 과학이나 수학 관련 패키지에서 광범위하게 사용된다. 원래 파이썬은 수치해석이나 통계같은 복잡한 계산을 하기 위한 언어가 아니었지만 numpy가 이런 점을 보완시켰다. 상당 부분 C언어와 포틀란으로 작성돼 있어 속도도 빠른 편이다. NumPy는 배열을 계산하기 위해 ndarray(n차원 array)라는 객체를 제공하는데, ndarray객체를 이용해서 수학의 행렬 연산과 유사한 연산을 수행할 수 있다. NumPy 설치하기 pip install numpy 넘파이는 위의 명령어로 간단히 설치할 수 있다. 리눅스 기반으로 만들어진 ..

[프로젝트] 06. DRF 경매 서비스 - 20세기 박물관

레트로한 느낌이 나는 전자제품이나 패션을 사고 파는 경매 서비스 프로젝트 정보 프로젝트: 경매 서비스 - 20세기 박물관 개발기간: 2023.05.08 - 2023.05.14 ( 7일 ) 주요 기능: 경매 기능, 경매 로그, 북마크, JWT 인증 역할 Github 레포지토리 관리 총괄 백엔드 프론트엔드 프로젝트 발표 기술스택: 프로젝트 구성 ★ 파일구조 관리 앱 centurymuseum, 메인 컨텐츠 앱 article, 유저 관리 앱 user으로 구성 . ├── article │ ├── migrations │ ├── admin.py │ ├── models.py │ ├── scheduler.py │ ├── serializers.py │ ├── urls.py │ └── views.py ├── centurym..

[DRF] dj-rest-auth - email인증 및 User모델 필드 커스텀하기

지난 프로젝트에서 회원가입 시 이메일을 인증해야 가입이 완료되는 기능을 구현하기 위해 drf의 서드파티인 dj-rest-auth를 사용했다. dj-rest-auth는 로그인, 로그아웃, 비밀번호 재설정, 소셜 미디어 인증 등의 사용자 인증에 관련된 모델을 미리 만들어 둔 프로젝트다. django-rest-framework 라이브러리로 만들어졌으므로 설치되어 있어야 한다 적용방법 # 1. dj-rest-auth 설치 pip install dj-rest-auth # settings.py INSTALLED_APPS = ( ..., 'rest_framework', 'rest_framework.authtoken', ..., 'dj_rest_auth' ) # user/urls.py urlpatterns = [ #...

[CSS] 03. CSS 핵심 (3)

Chapter 03. CASCADE CSS는 Cascading Stylesheet의 약자다. 여기서 cascade는 명사로는 다단으로 된 폭포를 의미하고 동사로는 상명하달 비슷한 의미를 가지고 있다. 즉 CSS는 여러 태그에 붙은 스타일의 속성이 겹칠 경우 순서를 정해서 차례로 적용하는 방식으로 작동한다. 위에서부터 (1) 브라우저가 기본적으로 페이지에 적용하는 스타일시트, (2) PC유저가 로컬에 적용한 스타일, (3) 작성자가 적용한 스타일, (4) 작성자가 !IMPORTANT를 선언한 스타일, (5) PC유저가 !IMPORTANT로 로컬에 적용한 스타일 로 된 레이어가 있다. 이중 !IMPORTANT가 선언되어 있는 레이어가 가장 우선순위가 높다. 따라서 각 속성에서 높은 우선순위에 있는 속성값이 ..

반응형