일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 오라클
- MySQL
- Xcode
- 리눅스
- Spring
- AI
- DBMS
- IOS
- 티스토리챌린지
- 42seoul
- 데이터베이스
- 소켓
- javascript
- sql
- 프로그래밍언어론
- CD
- 스프링
- 네트워크
- libasm
- 인공지능
- jenkins
- 다이어리
- 스프링부트 웹 소켓
- 아이패드다이어리
- swift
- 스프링부트
- CI
- springboot
- 오블완
- JPA
- Today
- Total
목록42 SEOUL (26)
Hi yoahn 개발블로그
나는 코로나가 터진 직후 42Seoul 에 들어왔고, 당시 3학년 1학기를 마친 후 1년 휴학하여 본과정 과제를 달려 블랙홀을 3학년 2학기를 견딜 수 있을 만큼 늘린 후 복학, 3학년 마친 후 방학때 다시 과제를 달려 4학년 1학기를 마칠 수 있을 정도로 끝냈고, 4학년 1학기가 끝난 이후부터는 취준과 42를 병행했다. 그 중에 4학년 1학기 때까지는 코알리숑 점수 100점을 채워야 지원금이 나오는 시스템이었고, 심지어 원격 평가가 가능했기 때문에 학기 중에도 지원금을 받으면서 42서울 과정을 진행할 수 있었다. 그래서 학교와 병행하며 하던 중, 일상이 거의 회복되며 4학년 2학기 때쯤부터 클러스터 출석시간 80시간을 채워야 지원금이 나오는 시스템으로 변경되었다. 진짜 다행이었다. 4학년 2학기부터는 ..
ssh를 통해 로컬에서 원격 인스턴스로 접속하거나 원격 인스턴스에서 원격 인스턴스로 접속하기 위해 해야하는 설정 1. cloud 서비스를 이용하는 경우 접속하려는 대상 서버에 접속 허용할 사용자가 포함된 보안 그룹이 접속 가능하도록 포트 22를 열어둔다. 2. 접속하기 위한 사용자의 ssh에서 ssh-keygen 으로 .ssh/id_rsa, .ssh/id_rsa.pub 파일 생성 3. 접속할 서버에서 접속할 사용자의 로컬에 있는 ~/.ssh/id_rsa.pub 값을 서버의 ~/.ssh/authorized_keys 에 추가해준다. GCP의 경우 로컬의 id_rsa.pub 값을 복사한 뒤 VM 인스턴스 > 메타데이터 > ssh 키 > 수정 붙여넣기 한 뒤 저장 SSH 접속 시 IP 대신 별명 사용하기 ~/...

CI/CD CI는 Continuous Integration이라는 뜻으로, 지속적인 통합이라는 의미이며 CD는 Continuous Delivery and Continuous Deployment 두가지 모두의 축약어이다. 지속적인 서비스 제공 혹은 지속적인 배포라는 의미다. CI (Continuous Integration) :지속적 통합 지속적인 통합이란, 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것을 의미한다. 코드 버전 관리를 하는 Git, SVN 등에 push 가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포파일을 만드는 과정을 CI 라고 한다. CI가 필요한 이유는 코드 변경이 일어날 때마다 혼자 작업하는 경우라면 매번 배포 파일을 직접 생성해야한다...

http://usecurity.net/archives/1855 개인정보의 암호화 기준 (개보법 및 망법) 개인정보에 대한 암호화 기준 및 참고사항을 정리해봅니다. ■ (개보법) 개인정보의 안전성 확보조치 기준 제7조(개인정보의 암호화) ① 개인정보처리자는 고유식별정보, 비밀번호, 바 usecurity.net 프로젝트를 진행하면서 이름이나 핸드폰번호를 디비에 저장하게 되는 일이 생겼는데, 개인정보 보호법에 명시된 암호화 해야하는 개인정보는 아니지만 디비가 해킹될 경우를 대비해서 암호화하여 저장하기로 했다. 암호화는 처음 적용하는거라 여기서는 암호화 알고리즘들부터 찾아보려고 한다. 개인정보 보호법에서 말하는 안전한 암호화 알고리즘은 따로 명시되어 있다. 안전한 암호화 알고리즘: SEED, ARIA-128 이..

SSH Tunneling이란? - ssh 클라이언트와 서버 사이에 연결이 이루어지면 이를 터널링이라고 한다. - 여기에 포트 포워딩이란 기술을 더해서 다른 어플리케이션에 접근을 할 수 있다. - 터널링을 통해 방화벽을 우회할 수 있다 터널링의 종류 1. Local port forwarding 사용법: > ssh -L {port1}:{hostname}:{port2} 서버명 포트번호1: 클라이언트가 검사하고 있을 포트번호 포트번호 1로 데이터가 왔을 때 SSH 클라이언트가 SSH 서버로 데이터를 전송하고 => SSH 서버는 이 데이터를 다시 호스트의 port2로 데이터를 보내준다. A 컴퓨터에서 B 서버에 있는 www.test.com 사이트에 접속하려는 경우, A 컴퓨터에서 웹서핑을 못하도록 80포트를 막아..
Mutex와 Semaphore는 둘 다 데드락을 피하기 위한 기술 중의 종류이다. 1. Semaphore (= Synchronization Tool) 세마포어는 어떤 자원을 쓰려고 할 때 사용을 통제하기 위한 것이다. integer 값이고, 가능한 자원의 갯수이다. ex) printer 가 3개라고 할 때, Semaphore = S 는 3. 여러 스레드 중에서 3개의 스레드가 printer를 하나씩 사용하고 있다면 나머지 스레드는 S가 1 이상이 될 때까지 대기해야 한다. 1 ) Counting Semaphore - 값은 여러 도메인에 대한 값이 될 수 있다. 2 ) Binary Semaphore - 값의 범위는 0 or 1 - mutex lock 과 비슷하다. - mutual exclusion이 세마포..
Philosophers 이 프로젝트는, 프로세스 스레딩의 기본을 배우게 된다. 여러분은 스레드를 만드는 방법을 배우고 mutex를 발견할 것이다. Mandatory part Basic rules: C언어로 작성되어야 하고, Norm 규칙을 따라야 한다. 모든 leak, crash, undefined behavior, or norm error 는 0점 처리된다. 여러 철학자들이 둥근 테이블에 앉아 3가지 중 하나를 하고 있다: 먹기, 생각하기, 자기 먹는 동안에는 생각하거나 잘 수 없고, 자는 동안에는 먹거나 생각할 수 없고, 생각하는 동안에는 먹거나 잘 수 없다. 철학자들이 앉아 있는 원형 테이블에는 중앙에 큰 보울에 스파게티가 담겨있다. 탁자 위에 포크가 몇 개 있다. 스파게티는 한 개의 포크로 서빙하..
두개의 스택을 이용해서 한 스택에 오름차순 정렬하는 과제인데, 주어진 명령어 들을 이용해 정렬할 요소의 갯수에 따라 주어진 명령어들의 갯수 제한을 두어 최적화를 해야하는 문제이다. ./push_swap $ARG 인자로 들어온 명령어들을 A 스택에 담고, B 스택을 하나 더 두고 두 개의 스택을 이용해서 정렬해야 한다. 말은 스택이라고 하지만, 주어진 명령어들을 보면 큐나 덱에 가까운 것 같다 sa: stack a의 가장 위에 있는 요소 두개 swap sb: stack b의 top 두개 swap ss: sa, sb 동시 pa: 스택 B의 top 요소를 A 로 push pb: 스택 A의 top 요소를 B 로 push ra: A의 탑을 제일 뒤로 보냄 rb: B의 탑을 제일 뒤로 rr: ra & rb rra:..
hi0seon.tistory.com/entry/42Seoullibasm-libasm-서브젝트-번역 [42Seoul/libasm] libasm 서브젝트 번역 먼저 서브젝트 번역! Chapter 1 Introduction 어셈블리(또는 어셈블리어)는 컴퓨터 또는 기타 프로그래밍 가능한 장치를 위한 낮은 수준의 프로그래밍 언어이며, 언어와 아키텍처의 기계 코드 명령 사 hi0seon.tistory.com 1. 64비트 asm 사용해야 하고, 호출 규약을 따라야 한다. kkamagui.tistory.com/811 64비트 리눅스 vs 64비트 윈도우 호출 규약 비교(Calling Convention) 근 한달동안 모든 코딩을 어셈블리어로만 하고 있다보니 호출 규약(Calling Convention)을 다시 살펴..
먼저 서브젝트 번역! Chapter 1 Introduction 어셈블리(또는 어셈블리어)는 컴퓨터 또는 기타 프로그래밍 가능한 장치를 위한 낮은 수준의 프로그래밍 언어이며, 언어와 아키텍처의 기계 코드 명령 사이에 매우 강력한(대단하지 않는 경우가 많다) 대응성이 있다. 각 어셈블리 언어는 특정 컴퓨터 아키텍처에 한정됩니다. 대조적으로, 대부분의 고급 프로그래밍 언어는 일반적으로 여러 아키텍처에서 휴대할 수 있지만 해석하거나 컴파일할 필요가 있다. 어셈블리 언어를 기호 컴퓨터 코드라고도 합니다. Chapter 2 Common Instructions 정의되지 않은 동작 외에 예기치 않게 기능(분할 오류, 버스 오류, 이중 사용 가능 등)이 종료되지 않아야 합니다. 이렇게 하면 프로젝트가 작동하지 않는 것으..