본문 바로가기

Programming👩🏻‍💻

Packing, Unpacking 패킹/언패킹이 가능한 *iterable 자료형들 *iterable은 반복문으로 요소를 하나씩 순회할 수 있는 객체를 뜻한다.__iter__() 메서드를 가지고 있어 이터레이터 객체를 반환하며 __next__() 메서드로 요소를 순차적으로 반환한다."반복할 수 있는" 데이터 모음# 1. 리스트(List)a, b, c = [1, 2, 3]# 2. 튜플 (Tuple)x, y, z = (4, 5, 6)# 3. 문자열 (String), 글자당 인덱싱 가능p, q, r = "abc"# 4. 세트(Set)i, j, k = {1, 2, 3}# 5. 딕셔너리(Dictionary), 기본적으로 키가 언패킹됨a, b, c = {"x":1, "y":2, "z":3} # a="x", b="y", c="z"# 5.1 값(valu.. 더보기
맥북에 Java 설치하기 1. brew search openjdk11 명령어로 openjdk 설치 가능한 결과가 나옴brew search openjdk11==> Formulaeopenjdk@11 ✔ openjdk openjdk@17 openjdk@21 openjdk@8==> Casksopenttd 2. brew install openjdk@11  명령어로 자바 설치 3. 잘 깔렸는지 버전 확인을 했을 때, 높은 확률로 버전을 읽어오지 못 함. 이유는 java 명령어를 실행할 바이너리 파일이 지정이 안되었다.java --versionThe operation couldn't be completed. Unable to locate a Java Runtime.Please visit http://ww.. 더보기
[Swagger] drf-spectacular로 REST API 문서 자동 생성 최근 팀프로젝트에서 스웨거를 자주 사용하고 있습니다. 기본 사용법 익혔지만 개념적으로 한번 더 정리해보면 좋을 것 같아 포스팅으로 남겨봅니다.     Swagger : Open Api Specification(OAS)를 위한 프레임워크 Swagger는 API 스펙에 대한 명세를 확인할 수 있는 공유 문서로, 백엔드에서 구현한 REST API를 프론트엔드에서 쉽게 확인할 수 있게 도와줍니다. 이를 통해 개발자들은 API의 사용법과 엔드포인트, 요청 및 응답 형식을 직관적으로 이해할 수 있으며, 문서화된 내용을 바탕으로 프론트엔드와 백엔드 간의 원활한 협업이 가능해집니다.코드 기반으로 API문서가 자동으로 생성되고 코드가 변경되면 문서도 자동으로 업데이트도 됩니다. OAS(OpenAPI Specificati.. 더보기
React 벼락치기 메모형식으로 우선 포스팅  1. 리액트는 SPA로 html 파일이 한개만 존재함2. jsx = html+js3. main.jsx or index.jsx 는 index.html 연결고리 브릿지 // main.jsximport { StrictMode } from 'react'import { createRoot } from 'react-dom/client'import App from './App.jsx'import './index.css'createRoot(document.getElementById('root')).render( ,)main.jsx는 App.jsx에서 정의된 App 컴포넌트를 index.html의 root div에 연결하는 역할을 하여 React 애플리케이션이 웹 페이지에 렌더링된.. 더보기
[github] fork 레포지토리 최신 코드로 업데이트하기 Intro깃허브에서 upstream은 다른 개발자의 원격 저장소에 있는 변경사항을 가져오는 것이다. 이 실행을 통해서 협업하고 있는 프로젝트의 최신 소스코드를 불러 올 수 있다.Upstream?다른 사람의 GitHub의 저장소를 Fork한 경우 내 GitHub가 origin이 됩니다. fork한 저장소(=다른 개발자 저장소)를 upstream이라고 한다.origin와 upstream 모두 remote 저장소이다.보통 origin과 구분하기 위해서 upstream 이라는 명칭을 주로 사용한다. 출처 - 위키독스 깃레시피  명령어#1. 로컬 저장소 터미널에서 원격저장소 upstream 등록합니다.git remote add upstream [오리지널 저장소 URL(나의 레포지토리 아님)] #2. remote .. 더보기
Django - URL 패턴 name 속성 Django - URL 패턴 name 속성# urls.pypath('posts/', views.post_details, name="post_list') 장고 urls.py 파일에서 URL 패턴을 정의할 때 'name' 속성은 URL 패턴에 이름을 부여하는 중요한 기능이라고 한다. 1. view, template에서 URL 문자열을 하드 코딩 없이 name 값을 사용하여 URL 생성 가능2. 템플릿에서 name을 템플릿 태그로 url 정의 가능3. 쿼리 파라메터를 추가하여 동적 URL 생성 가능 # '/posts/'로 리다이렉트return redirect('post_list') # 템플릿 태그게시글 목록# 매개변수가 있는 URLfrom django.urls import reverseurl = reverse.. 더보기
MAVEN 용어만 익숙한 것들이라 다시 정리하면서 내가 남에게도 설명할 수 있을 정도로 익혀보자. MAVEN 프로젝트 전체적인 라이프 사이클을 관리하는 도구, 자바용 프로젝트를 빌드를 자동화 해주는 build tool이다. Conversion over Configuration CoC 개념으로 프로그램을 구성할 때 소스파일은 어떤 위치에 있어야하고 컴파일된 파일들은 어떤 위치에 있어야하는지 미리 정해 놓는 것이다. 메이븐..이라고 하면 환경 설정을 할 때, 복잡하고 까다롭게 ... 느껴지는데, 결론적으로는 배포를 편하게 해주기 위한 도구이다! 수동으로 라이브러리를 추가하는 번거로움과 규모가 큰 프로젝트를 진행할 때 더 복잡해지는 과정을 방지하기 위해서 라이브러리들을 편리하게 공유하고 다운받고자 나온 것이 메이븐이다... 더보기
Json Web Token 웹사이트에 수많은 사용자가 접속을 하는데 그 중 회원/비회원 여부에 따라 로그인 인증 결과에 따라 접근 권한을 부여를 할지 결정해서 응답을 해줘야한다. 특정 사이트에서 어떤 활동이든 사용자의 로그인 여부가 매번 확인해야된다. Q) 브라우저에 사용자 로그인 정보를 저장한다면? A) DB에 저장된 사용된 계정의 해시값 등을 꺼내온 정보가 사용자의 암호를 복잡한 알고리즘으로 계산한 값과 일치하는지 확인하는 과정이 필요하여 사이트에서 모든 활동에 대해 실행하기 굉장히 부담되는 작업이다. 시간+자원 손해/매번 아이디,패스워드 정보가 이동되면 보안상 취약 이러한 취약성을 보안하기 위해 전통적으로 사용된 '세션' 세션방식은 사용자가 로그인에 성공하면 서버는 '세션 표딱지'란 걸 출력한다.(a.k.a 입장표) 사용자 .. 더보기

반응형