본문 바로가기

전체 글66

[오픈갤러리] Django 서버 정리 작업 ⑨ - 기프트카드 개선작업 보호되어 있는 글 입니다.
주소 API (Python 예시) 웹 개발을 하다 보면 사용자의 주소를 받아보아야 하는 일이 생긴다. 하지만 고객들에게 직접 입력 받다 보면 데이터의 정합성이 깨질 수 있고 잘못된 주소가 입력될 수 있다. 그러므로 행정안전부에서는 개발자들이 사용할 수 있는 주소 API를 공개했다. 직접 주소 API를 개발하지 못하는 이유는 주소는 생길 수도 있고 없어질 수도 있으므로 유지보수 측면에서 어렵다는 점이 있지만 행정안전부에서 DB를 제공하고 있으므로 구현이 불가능하지는 않다. 이 글에서는 행정안전부에서 제공한 도로명 주소 검색 API를 먼저 다루고 이를 어떻게 구현해야 하는지 이어서 작성할 예정이다. API의 서비스 개요 다양한 시스템 환경 적용 가능 개발언어, 플랫폼 제약없음 DB 구축 및 현행화에 대한 부담 없음 실시간 주소 검색 가능 신..
ASCII Code, Unicode, encode, decode (2편) 표현 방식 UTF-8은 위 규칙에 따라서 유니코드 문자를 인코딩 합니다. 1바이트 : ASCII코드 문자가 ASCII 코드인 경우에는 ASCII와 동일하게 1바이트로 표현을 합니다. 2바이트 : 아랍, 히브리, 대부분의 유럽계(조지안 문자 제외) UTF-8에서는 U+0080 ~ U+07FF 사이의 아랍, 히브리, 유럽계 문자들을 2바이트로 표현합니다. 여기서 앞의 바이트 앞에 110을 붙이고, 따라오는 바이트의 앞에는 10을 붙이는 규칙을 적용합니다. 3바이트 : 기본 다국어 평면(BMP) ASCII와 아랍, 히브리, 유럽계 문자들을 제외한 BMP 문자들은 모두 3바이트로 표현합니다. 3바이트로 표현하는 규칙을 2바이트와 유사하게 적용됩니다. 첫 바이트 앞에는 1110을 붙이고, 나머지 두 바이트 앞에는..
ASCII Code, Unicode, encode, decode (1편) 시작하기 전에 컴퓨터의 기본 저장 단위는 바이트(byte)이다. 1바이트(byte)는 8비트(bit)이다. 1byte에는 2의 8승에 해당하는 256개의 고유한 값을 저장할 수 있다. 문자나 기호들의 집합을 컴퓨터에서 저장하거나, 통신 목적으로 사용할 경우에는 부호로 바꾸어야 한다. 이를 **'문자 인코딩(encoding)' 또는 '부호화'**라고 하며 부호화된 문자를 복원하는 것을 '복호화'라고 한다. ASCII Code ASCII(아스키)는 American Standard Code for Information Interchange의 약자로써, ANSI(미국표준협회)에서 만든 표준 코드 체계다. ASCII Code를 만든 이유는, 컴퓨터는 1과 0 이 두 수로 밖에 연산을 할 수 없으므로 문자도 숫자로..
React 컴포넌트 라이브러리 Top 11 React는 가장 많이 사용되는 기술 중 하나입니다. React를 사용하는 사람은 처음 페이스북으로부터 만들어진 2013년부터 상승 곡선을 그리며 꾸준히 늘어왔고 최근에 이르러서는 그 수가 엄청나게 늘었습니다. 이로 인해 사람들은 직접 코딩한 컴포넌트들을 공유하기 시작하였고 이 글은 공유된 컴포넌트들 중에 인기 있는 11가지를 소개하는 글입니다. Material-UI Material-UI는 Github에서 가장 인기있는 React 컴포넌트 라이브러리입니다. 간단하고 가벼우며 Google의 Material Design 사양에 따라 제작되었습니다. 레이아웃, 양식, 탐색, 데이터 표시 및 기타 여러 위젯에 대한 컴포넌트가 존재합니다. @material-ui/style로 컴포넌트를 스타일링 할 수 있고 CSS..
맥 TouchEn nxKey 문제 해결 pc에서 원하는 물건을 구매하고 싶어서 결제할 때 TouchEn 보안 프로그램을 설치하라는 안내 문구가 나오게 된다. 윈도우 사용자의 경우에는 설치만 잘해주면 결제하는데 문제가 없지만 맥 사용자의 경우에는 확장 프로그램 또는 수동 설치까지 완료하였음에도 계속 프로그램을 설치하라는 안내 문구가 반복되어 스트레스를 받은 경험이 있을 것이다. 해결방법 인터넷에서 찾아보면 이거해라 저거 해라 말들이 많은데 삽질하면서 찾은 가장 간단한 방법은 개발자 도구를 켜고 toogle device toolbar 모드를 활성화시킨 다음 브라우저의 디바이스 타입을 mobile로 변경하는 방법이다. 따라 하기 1. 결제하려는 페이지에서 F12키를 누른다. 2. 왼쪽 상단에 전체 화면 버튼(초록색 동그라미) 하단에 있는 아이콘을 ..
React Fragments React를 이용해 컴포넌트를 만들고 JSX로 엘리먼트를 return해줄때 하나의 부모 엘리먼트로 감싸어지지 않으면 에러가 발생하는 경험을 겪은적이 있었다. function FuncName(props) { ... return ; } 이를 해결하기 위해서 원래 구조 계획에 있지 않던 엘리먼트를 생성하여 씌워주었지만 이 문제를 해결해주는 좋은 방법이 React에는 이미 있었다. 바로 이번 글에서 소개할 Fragments라는 문법이다. Fragments Fragments는 DOM에 별도의 노드를 추가하지 않고 여러 자식을 그룹화할 수 있다. class Table extends React.Component { render() { return ( ); } } 위와 같은 코드가 있을때 Columns 컴포넌트에는 만..
Jira 도입 리뷰 Jira 도입 전과 후의 변화: 우리의 성장 이야기도입 전: 혼란 속에서 기획을 고민하다회사가 성장하고 다양한 프로젝트를 진행하면서, 기획의 책임이 명확하지 않았던 시절이 있었습니다. 기획은 상황에 따라 타 팀의 관리자, 디자이너, 개발자, 그리고 기획자가 나눠 맡았지만, 각자의 방식과 관점이 다르다 보니 통일성은 부족했고, 때로는 퀄리티에도 큰 차이가 있었습니다.특히 타 팀에서 기획이 진행될 경우, 개발 지식이 부족한 기획서는 디테일이 부족하고, 기능 명세가 모호해 개발자와의 소통이 반복적으로 필요했습니다. 이는 개발자의 시간을 크게 소모하게 만들었고, 결과적으로 프로젝트 진행 속도에 영향을 미쳤습니다.개발자가 직접 기획을 하는 경우에는 더 꼼꼼하고 구조적인 기획이 가능했지만, 다른 팀과의 소통 부족으..
IT팀과 협업하기, 업무 발의 통합된 업무 발의 채널의 필요성과 제안복잡한 발의 채널의 문제: 누구에게 요청해야 할까?IT 기업에서 일하다 보면 업무 중 필요한 기능 추가나 갑작스러운 장애, 혹은 제휴 요청 등으로 인해 IT팀에 개발을 의뢰해야 하는 상황이 종종 발생합니다. 이런 경우 발의 방법은 다양합니다.자리로 가서 구두로 요청하기메일을 보내기친한 개발자에게 DM을 보내기이처럼 여러 채널을 통해 요청할 수 있는 것이 언뜻 보기엔 편리해 보일지 모르지만, 과연 이런 방식이 최선일까요?다르게 생각해 봅시다.관리자의 입장에서 상상해보면 혼란이 쉽게 그려집니다. IT팀의 관리자는 다양한 팀에서 들어오는 업무 발의를 정리하고, 이를 기반으로 팀 내 업무를 조율합니다. 그런데 발의자들이 각자 편한 방식으로 업무를 요청하면, 관리자는 여러 채..