[Github] fork 사용하기(다른 사람의 repository를 내려받기)

1. 내 github에 추가할 상대 repository를 fork해오기(오른쪽 위에 포크모양 클릭) 2.fork해서 만들어진 내 github의 repository url을 복사 후 받아오기 (clone URL) 3. 원격 저장소 내 내부 저장소로 받아오기. git clone [Clone URL] 4. pull request작업 수행할 branch 생성 git checkout -b [branchName] 5. 원본 저장소를 원격 저장소에 추가. git remote add origin(branchname) [Clone URL] 6. 코드 수정 및 파일 추가 7. 수정사항을 add git add [fileName] 8.add 한 파일들을 commit git commit -sm "[commit mesagge]"..

GitHub&Git 2021.07.14 0

[SEMI] PIO 통신이란?

PIO 통신 Parallel Input Output : 평행 입출력 통신 I/O 상태를 전당하는 입출력 =E84 통신 : SEMI 규약으로 장비 간 제품 이동 시 사용 물류장비들을 조작하는 AMHS(Controller), Equipments 간 통신 I/O 8 bit로 통신 Active는 IB 장비들, Passive는 STK 혹은 EQP Active와 Passive 장비들 간의 이동을 시나리오에 따라 통신하는 과정. LR, UR, READY, BUSY, COMPLETE 등. [예시 영상](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s) Reference [Youtube 깹 tv](https://www.youtube.com/watch?v=6qPP4I5hx3Q&t=5s)

IOT 2022.07.12 0

[Python] 파이썬 requests, json으로 REST API data 보내고 받기

카카오톡 2차 정답이 없는 문제. 요구사항을 기반으로 trade-off를 감안해 로직을 설계. 로직을 개선해가는 역량. REST API 호출. API결과가 JSON 포맷. REST API 호출 처리 모듈, JSON 파서 사전 준비. pprint, bs4 쓸수있나? 일단 깔아놔보기. JSON? Java Script Object Notation. 통신을 통해 데이터를 주고 받는데 사용되는 규칙, 형식 JSON은 dictionary에 key - value 형식으로 이루어진다. REST API로 이용해 받아온 값을 JSON형태 import json, requests response = requests.get(URL).json() response = requests.post(URL,header,data).json..

Django&Python 2021.09.23 0

[알고리즘] sweeping-line 라인 스위핑을 통한 필터링

라인스위핑 스위핑 알고리즘이란? 특정 선이나 공간을 한쪽에서부터 쓸어버리는 식의 알고리즘. 일정 좌표, 축기준 정렬 한 뒤 일정 시점의 좌우 가장 가까운 두 점사이의 거리보다 멀리떨어진 점은 조사하지 않는 방식. 가지치기를 하겠다는 이야기다.(O(NlogN)) 아래는 2261번 문제에 대한 분할정복 풀이. import sys input=sys.stdin.readline INF=sys.maxsize # 두 점 사이의 거리를 구하는 함수 def dist(a,b): return (a[0]-b[0])**2+(a[1]-b[1])**2 def divide(start,end): # 점 하나면 버림 if start==end: return INF # 점 두개면 거리구해서 리턴 elif end-start==1: retur..

[GitHub] 깃헙 잔디 사라졌을 때 당황하지 않고 복구하는 방법.

1.잔디 옵션이 프라이빗으로 바뀌어있는지 확인한다. => public으로 바꾼다. 2. 깃헙에 등록되어있는 메일이 바뀌어서 local git의 메일주소와 불일치 하게 되었는지 확인한다. => 깃 메일을 일치시키던가 깃헙에서 삭제한 메일을 다시 등록한다. 3. 특정레포의 강제푸시 혹은 merge로 commit기록이 전부 초기화 됐다!! 이러면 정말 눈물나지만 해결 방법이 있다. github api를 이용해 과거로 회귀하는것. 1. Access Token을 발급받는다. https://github.com/settings/tokens 에 가서 토큰 생성을 누르고 repo전체 선택 후 발급 받는다. 2. 강제 푸시 전 혹은 레포가 정상일 적 마지막 커밋 SHA값을 확인한다. curl -H "Authorizatio..

GitHub&Git 2021.07.25 0

[Java] Java의 main() 메서드

자바의 main() 메서드 Java 프로그램은 특정 순서로 실행되는 Java 명령의 시퀀스기 때문에 시작과 끝이 있다. Java 프로그램을 실행하려면 JVM에 프로그램 실행을 시작할 위치를 신호해야한다. Java의 모든 명령어(코드)는 Java 클래스 내에 위치해야한다. 클래스는 함께 속한 데이터와 명령어를 그룹화하는 방법이다. 따라서 클래스는 변수와 메서드를 모두 포함 할 수 있다. 변수는 데이터를 포함할 수 있으며, 메서드는 데이터에 대한 작업 집합(명령어)을 함께 그룹화한다. 자바 클래스 선언 Java 코드는 클래스와 동일한 파일 이름을 가진 파일에 있어야하며 파일 접미사로 끝나야한다. 즉 파일이 클래스 이름과 일치하는 파일에 있어야 Java SDK의 Java 컴파일러 또는 Java IDE 내부에서..

Java 2022.07.28 0

[MarkDown] 특수문자를 특수문자로 입력하기

Symbol 뒤에 HTML Number를 붙혀주면 특수문자를 입력할 수 있다. Symbol HTML Number HTML Name Description ! ! exclamation point " " "\; double quotes # # number sign $ $ dollar sign % % percent sign & & &\; ampersand ' ' single quote ( ( opening parenthesis ) ) closing parenthesis * * asterisk + + plus sign , , comma - - minus sign - hyphen . . period / / slash : : colon ; ; semicolon > > greater than sig..

HTML 2022.07.25 0

[D3] D3.js 튜토리얼 정리

D3.js D3은 데이터 기반 문서(Data-Driven Documents) SVG, HTML, CSS를 이용해 웹 브라우저에 맞춤형 데이터 시각화를 생성하기 위한 오픈소스 Protovis는 정적 시각화, D3은 상호작용, 전환 및 변환에 중점. 전역 JavaScript 개체 d3을 정의 D3의 기능 웹 표준 사용 데이터 기반 DOM 조작 데이터 기반 elements 동적 속성 시각화 유형 맞춤형 시각화 전환(transition) 상호작용 및 애니메이션(duration, delay, easy) D3의 장점 모든 JS 프레임워크와 함께 사용 가능. D3는 데이터에 중점을 두고 있으므로 데이터 시각화에 유리. D3는 오픈 소스기 때문에 소스 코드로 작업하고 고유한 기능 추가가 가능 웹 표준과 함께 작동하므로..

d3.js & three.js 2022.07.24 0

[백준][Python] 14391 종이조각 : 비트마스킹 전수조사

배열에서 경우의 수로 합이나 최소 최대 구하기 나올때마다 BFS, DFS 보다 비트마스킹하면 어떨까 상상만 해봤는데 실제로 접한 첫문제. 경우의 수 브루트포스 문제를 비트마스킹으로 어떻게 순회할 것인가 잘 나타낸 문제 같다. 코드 전체 다 외워도 손색없는 문제. 아이디어는 배열의 가로, 세로 계산 여부를 0,1로 나누어 1이면 가로계산에 이용하고 0이면 세로계산에 이용한다. 각 열, 행을 순회하며 1이 이어지면 왼쪽으로 한칸씩 늘려주며 누적합의 자릿수를 늘려주고 0이 나오면 자릿수를 초기화시키는 형식. def bitmask(): global maxAns # 비트마스크로 2^(N*M)의 경우의 수를 따져본다 for i in range(1

백준 2021.09.01 0

[Computer Structure] CPU

중앙처리장치(CPU) CPU와 메모리는 IC(integrated Circuit)로 불리는 전자부품(마이크로 칩) 컴퓨터에서 가장 핵심적인 역할을 수행하는 부분. '인간의 두뇌'에 해당 연산장치, 제어장치, 레지스터 로 구성됨 연산 장치 산술연산과 논리연산 수행 (=산술논리연산장치라고) 연산에 필요한 데이터를 레지스터에서 가져오고, 연산 결과를 다시 레지스터로 보냄 제어 장치(스케줄링을 제어하는 장치) 명령어를 순서대로 실행할 수 있도록 제어하는 장치결과에 따라 명령어 실행에 필요한 제어 신호를 기억장치, 연산장치, 입출력장치로 보냄 또한 이들 장치가 보낸 신호를 받아, 다음에 수행할 동작을 결정함 주기억장치에서 프로그램 명령어를 꺼내 해독하고, 레지스터(기억 장치) CPU의 속도와 비슷한고속 기억장치.용..

컴퓨터 구조 2021.09.01 0

[백준][Python] 18352 특정거리의 도시찾기

다익스트라로 찾습니다. 최소거리는 늘 다익스트라 import sys input = sys.stdin.readline from collections import deque def dijkstra(start): queue = deque() queue.append([0,start]) visited = {i: float('inf') for i in range(1,N+1)} visited[start] = 0 while queue: cur_dist,cur_node = queue.popleft() for next in graph[cur_node]: if visited[next] > cur_dist+1: visited[next] = cur_dist+1 queue.append([visited[next], next]) r..

백준 2021.08.31 0

[SW 공학] 객체지향과 좋은 코드

객체지향 현대 소프트웨어 개발에 있어서 가장 중요한 되는 개념 스크립트 언어나 함수형 언어를 접하게 되더라도, 그리고 구조적 언어를 통해 개발을 하게 되더라도 객체지향은 꼭 알고 지나가야 하는 개념이다. 프로그래밍 언어의 기초 문법을 익히고 나서 소프트웨어를 구조적으로 작성하기 위해 배우는 첫번째 단계 불완전성의 관리 관점에서 보면 객체지향은 갈수록 대형화 되어 가는 소프트웨어를 작은 단위로 축소시켜 주는 역할 하위 타입에 대한 은폐를 통해서 작성해야 할 코드의 양을 줄이면서도 수정 및 확장이 용이한 소프트웨어 구조를 만들어 줌. 상속을 통해서는 중복된 코드가 발생하는 것을 막고, 인터페이스와 타입의 개념을 통해서는 내부 구현에 대한 은폐를 가능하게 해줌. 변수 대신 객체를 바꿈으로써 조건문/제어문을 사..

소프트웨어 공학 2021.08.22 0

[Python] 파이썬의 메모리 관리 : Garbage Collections

Python 의 Garbage Collection GC는 언제 사용되는가? 파이썬은 메모리관리에 reference counting과 garbage collection을 이용한다. reference counting : 참조 횟수가 0이 된 객체를 메모리에서 해제 garbage collection : 참조 횟수가 0에 도달할 순 없지만 reference cycle(순환참조)가 일어날 때. 엄밀히 말하면 reference counting 도 garbage collection의 한 형태. 레퍼런스 카운팅 모든 객체는 참조 당할 때 레퍼런스 카운터를 증가시키고 참조가 없어질 때 카운터를 감소시킨다. 카운터가 0이 되면 객체가 메모리에서 해제된다. sys.getrefcount()로 확인 가능. 순환 참조 간단한 예..

Django&Python 2021.08.19 3

[백준][Pyhton] 13275 14444 가장 긴 펠린드롬 부분 문자열

마나커 알고리즘의 핵심은 #을 삽입해 짝수 펠린드롬에 대비하는것, 중심점과 반지름 a배열의 관리. a배열의 관리는 r과 현재 인덱스now값에 의거해 관리되며 r과c값은 펠린드롬 범위 내 외에서 출발지점 인덱스 0에서 얼마나 멀어졌냐에 따라 관리된다. import sys input = sys.stdin.readline def manacher(string): n = len(string) a = [0] * n # i번째 문자를 중심으로 하는 가장 긴 팰린드롬 반지름 크기. c = 0 # 중심점(center) 초기화 r = 0 # 시작점에서 가장 먼 반경(펠린드롬 끝나는 인덱스중 가장 큰 값.) for now in range(n): # i번째 문자가 now 아래쪽에 있는 문자를 중심으로 하는 팰린드롬 범위 밖의..

백준 2021.08.18 0

[알고리즘] 문자열 매칭 3종세트 KMP, 보이어무어, 라빈카프

고지식한 매칭 text = 'ABABCA' for i in range(len(text)-len(target)): for j in range(len(target)): if text[i+j] == target[j]: j+=1 else: break print('Identified') break KMP 알고리즘.(시작위치 후보를 잡아놓자) 불일치가 발생한 텍스트 스트링의 앞 부분에 어떤 문자가 있는지를 미리 알고 있으므로, 불일치가 발생한 앞 부분에 대하여 다시 비교하지 않고 매칭을 수행. 패턴을 전처리하여 배열 next[M]을 구해서 잘못된 시작을 최소화함. next[M]: 불일치가 발생했을 경우 이동할 다음 위치 패턴내에서 반복하는 구간이 있을것이라는 전제.. 하지만 없다면 무의미. 하지만 패턴이 길다는 전..

[알고리즘] 비트마스크???!!!

비트마스크(bit mask) 비크마스크란 무엇인가? 정수를 이진수로 표현, 비트 연산을 통해 문제를 해결해 나가는 기술. 집합에서 하나의 원소는 하나의 bit로 표현(꺼져있다, 켜져있다.) ex switch_states = [True, False, False, True, True, False, False, False, True, True] switch_states = 0b1001100011 # 611, python에서는 앞에 '0b'를 붙여 이진수 표현 가능 정수형으로 표현하면 비트연산을 통한 삽입, 삭제, 조회 등이 간단해짐 더 간결한 코드 작성이 가능 더 빠른 연산이 가능 더 작은 메모리의 사용. 비트마스크를 이용한 정수 표현으로 다이나믹 프로그래밍이 가능함. (중요) 위와같은 장점이 ..

[알고리즘] 최단거리탐색 다익스트라, 플로이드 워셜, 벨만포드, A*

최단 경로 알고리즘. 주요 알고리즘 BFS (완전탐색 알고리즘) 가중치가 없거나 모든 가중치가 동일한 그래프에서 최단경로를 구하는 경우 가장 빠르다 다익스트라 알고리즘 (Dijkstra Algorithm) 음이 아닌 가중 그래프에서의 단일 쌍, 단일 출발, 단일 도착 최단 경로 문제 벨만-포드 알고리즘 (Bellman-Ford-Moore Algorithm) 가중 그래프에서의 단일 쌍, 단일 출발, 단일 도착 최단 경로 문제 플로이드-워셜 알고리즘 (Floyd-Warshall Algorithm) 전체 쌍 최단 경로 문제, 다수출발, 단일도착 하나의 정점에서부터 다른 하나의 정점까지의 최단 경로를 구하는 경우 A*알고리즘이 적합하다. 다익스트라 특정 노드에서 다른 모든 노드로 가는 최단경로를 갱신. 음의 간..

[CS] Apache MPM vs NGINX vs Node.js

미스터코 님의 10분 테코톡 시청 후 작성하였습니다. 간단한 정의 MPM(multi-Processing-modules) 서버는 시스템의 네트웍 포트에 연결하고, 요청을 받아들이며, 받아들인 요청을 처리하기 위해 자식들에게 분배하는 다중처리 모듈(MPM)을 선택할 수있다. NGINX - 웹서버 Node.js : Chrome V8 Javascript 엔진으로 빌드된 JavaScript 런타임. [언제 어떤 것을 선택해야 하는가???????] 세가지 모두 '웹서버'의 역할을 할 수 있다. (Node.js는 웹서버역할도 WAS(Express.js)도 가능함. 때문에 결이 좀 다름.) 동시성은 예전이나 지금이나 중요하다. (어느정도 기간동안 무시하지 않을 수 있는 연결들(+요청들)) -옛적엔 너무느린 네트워크(1..

[SSAFY] 싸피 6기 서울 비전공 최종 합격 후기.

이 블로그는 개인 공부정리용 블로그지만 선배 기수분들에게 받은 유용한 정보들을 다음 기수들에게 물려주고자 합격후기를 작성합니다. 최초 전공인 산업공학에서 생산관리직무를 준비하다가 웹개발에 관심을 갖게 되었고 독학은 4개월정도 진행했습니다. Essay 1번문항에서 SW개발경험을 토대로 한 지원동기 2번문항에서 어떤 구직활동을 왜 어떻게 해왔고 어떤것을 얻었는지를 정리하시면 됩니다. 저는 1번문항 2번문항 둘다 2개의 소문단으로 작성했는데 3개월짜리 스마트제조 국비교육을 들은 내용으로 반을 채웠고 나머지는 혼자 독학을 한 내용과 과정, 어떻게 독학을 통해 성장해왔는지를 어필했습니다. (스마트제조의 어플리케이션단 개발, 사용자중심의 웹서비스개발에 대한 관심도를 드러냈습니다.) 개인적으로 SW개발에 대한 관심도..

후기 2021.07.05 31

[CSS] img 에 filter로 색상 넣기

img{ -webkit-filter: opacity(.5) drop-shadow(0 0 0 gray); filter: opacity(.5) drop-shadow(0 0 0 gray); } 그림에 필터씌우는 코드. gray는 색상코드로 변경가능. opacity는 필터 두께 filter는 흐림이나 색상변형 등 이미지, 배경, 테두리 렌더링. drop-shadow(offset-x offset-y blur-radius color) filter 속성 /* SVG 필터를 가리키는 URL */ filter: url("filters.svg#filter-id"); /* 값 */ filter: blur(5px); filter: brightness(0.4); filter: contrast(200%); filter: drop..

CSS&Design 2021.07.01 0

[Git][Error] LF will be replaced by CRLF in 해결

git add . git add 시 warning: LF will be replaced by CRLF in 파일명 에러가 뜰 수 있다. 이는 OS마다 줄바꿈을 바라보는 문자열이 다르기 때문에 Git 이 볼때 어떤 방식을 선택할지 몰라 경고를 내린 것 LF : Mac, Linux(Unix) 줄바꿈 문자열 = \n : 다음 줄 같은위치 CR : Mac 초기 줄바꿈 문자열 = \r : 같은 줄 맨앞 CRLF : Window, DOX 줄바꿈 문자열 = \r\n : 다음줄 맨앞 해결방법은 autoarlf를 사용해 바꿔주면 된다. 윈도우 즉 LF -> CRLF는 git config --global core.autocrlf true Linux, Mac 즉 CRLF -> LF는 git config --global co..

GitHub&Git 2022.10.02 1

[Git] Git Rebase로 Conflict 해결

협업을 진행하다보면 conflct가 당연히 발생합니다. PR을 밀어 넣었을 때 기존 코드와 내 코드가 비교되는 과정에서 다른 코드가 원본에 Merge되면 비교과정이 올바르지 않게 되기 때문에 conflict가 발생하는데 이는 3-way-merge 방법 또는 rebase를 이용해 해결이 가능하다. 3-way-merge : base + 내 branch + upstrem의 최신버전 rebase : 내 branch + rebase 한 내용 rebase는 말 그대로 re + base로 내가 머지하려는 브랜치가 갈라져 나온 branch의 base를 바꾸겠다는 것이다. 이 과정을 통해 내 코드는 새로이 만들어진 base와 코드 대사과정을 하게되므로 Merge하는데 문제가 없게된다. 원리는 내 branch가 지속적으로..

GitHub&Git 2022.10.02 0

[Java] 정규표현식

Regular Expression 컴퓨터 과학의 정규 언어로 부터 유래 특정한 규칙을 가진 문자열의 집합을 표현, 형식언어 정해진 형식을 사용자가 제대로 입력했는지 검증 즉 입력값이 형식에 맞는지 검증할 때 자주 사용함. java.util.regex 패키지 안의 Pattern Class와 Matcher Class 사용 문법 ^ 문자열 시작 $ 문자열 종료 . 임의의 한 문자(단 \은 넣을 수 없음). (SQL Like에서 _) * 앞 문자가 없을 수도 무한정 많을 수도 있음 (SQL Like에서 %) + 앞 문자가 하나 이상 ? 앞 문자가 없거나 하나 있음 [ ] 문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타냅니다. [] 내에서 ^ 가 선행하여 존재하면 not을 나타냄 { } 횟..

Java 2022.07.25 0

[자료구조] 파이썬으로 LRU cache O(1) 구현하기

LRU cache O(1) 캐시는 불필요한 통신을 줄이고 기민한 UX를 제공 DB과부하를 막음.(query결과 저장) Proxy, CDN(유저와 가까운 CDN node) 메모이제이션 OrderedDict이용 from collections import OrderedDict MAX_SIZE = 2 cache = OrderedDict() def get_user(user_id): if user_id in cache: cache.move_to_end(user_id) return cache[user_id] if len(cache) == MAX_SIZE: cache.popitem(last=False) cache[user_id] = fetch_user(user_id) return cache[user_id] last=F..