일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트
- 오블완
- 스프링부트 웹 소켓
- 프로그래밍언어론
- 네트워크
- libasm
- 인공지능
- 데이터베이스
- 리눅스
- JPA
- 소켓
- AI
- IOS
- 스프링
- Xcode
- CD
- 42seoul
- javascript
- CI
- 오라클
- Spring
- MySQL
- 다이어리
- swift
- 티스토리챌린지
- sql
- 아이패드다이어리
- DBMS
- springboot
- jenkins
- Today
- Total
목록sswu (33)
Hi yoahn 개발블로그

Jenkins 를 이용하여 CI/CD를 할 때, Docker를 사용하는 상황이라면 Jenkins 가 설치된 인스턴스에 이미 Docker 가 깔려있지만 Jenkins 이미지 안에는 Docker 가 없기 때문에 docker 실행시 오류가 발생한다. 이를 해결하기 위해 Jenkins 이미지 안에 도커를 또 깔아야 할까? 아니다. 호스트 컴퓨터에 깔려있는 도커 데몬과, 젠킨스 컨테이너 내에 존재하는 도커 클라이언트가 통신할 수 있도록 해주면 된다. 1. docker 설치 sudo wget -qO- https://get.docker.com/ | sh sudo usermod -aG docker ${USER} # docker 실행을 sudo 권한 없이 할 수 있게 해줌 sudo systemctl start docke..

2.3 Syntax-Directed Translation 문법에 나타나는 기호들에, 속성을 부착시켜서 구문을 체크하는 파싱과 동시에 부착된 속성을 분석하여 번역 속성이 부착된 문법 - 속성 문법 Attribute grammar 합성 속성 Synthesized Attribute 부모의 속성을 계산하기 위해서 자식들의 속성만 필요한 경우 모든 기호에 부착된 속성을 계산할 때 후손들의 속성만 필요 상속 속성 Inherited Attribute 자식의 속성 + 부모의 속성 + 형제자매 속성값을 다 사용하는 경우 속성 계산에 순환이 일어나는 경우 ( A->B->C->A), 속성 문법을 사용한 파스트리에서 기호들에 부착되어 있는 속성들의 의존성을 그래프로 표시했을 때 싸이클이 있으면, 어디서부터 계산해야 하는지를 ..

컴파일러 Analysis (분석) Synthesis (합성) 1. 분석 1) 구문 분석 position := initial + rate * 60 분석과 유사한 작업 Structure editor 편집기 IDE Pretty printers 코드 예쁘게 출력해줌 컴파일러 처럼 문법을 알아야 예쁘게 출력 가능 Static Checkers 컴파일러와 유사하지만, 합성 파트가 없음 나중에 오류일 가능성이 있는 부분에 대해 오류 메시지를 띄워줌 (런타임까지 가지 않음) Interpreters source program -> target program 오른쪽의 표현 식들이 재귀적으로 계산됨(?) 명령어를 실행하기 위해 자주 사용됨 컴파일러와 유사한 작업 Text formatter 타이핑된 텍스트로부터 입력 스트림으로..
Dockerfile 은 COPY, ADD, RUN 이 실행될 때마다 하나의 레이어가 생성된다. 레이어가 여러개라도 이미지 사이즈에는 크게 영향이 없다. 하지만, 파일을 수정하게 되면 문제가 달라진다. 파일이 레이어에 추가되고 다른 레이어에서 수정하게 되면 기존 레이어의 파일은 그대로 남아있고, 수정된 파일이 다른 레이어에 생성되게 된다. 삭제를 하는 경우에도 기존 레이어에는 그대로 파일이 남아있기 때문에, 한번 레이어에 추가되고나면 파일의 용량을 회수하기 어렵다고 생각해야 한다. 하나의 레이어에서 모든 작업을 하면, 최종 버전 파일들만 한 레이어에 저장이 되므로 버전만 다른 똑같은 파일이 각 레이어에 남는 문제가 발생하지 않는다.

1. Decorator - 장식물과 내용물을 동일시하기 중심이 되는 객체에, 장식과 같은 부가적인 기능들을 하나식 입혀서 좀 더 목적에 어울리는 객체를 만들자 1.1 예제 프로그램 Display 클래스 복수행으로 구성되는 문자열을 표시하기 위한 추상 클래스 getColumns() 가로의 문자 수를 얻기 위한 메소드 getRows() 행의 수를 얻기 위한 메소드 getRowText() 지정한 행의 문자열을 얻기 위한 메소드 show() 모든 행을 화면에 표시하는 메소드 - TemplateMethod 패턴 적용 더보기 public abstract class Display { public abstract int getColumns(); public abstract int getRows(); public abs..

1. CI 환경 구축 CI 도구 지속적인 통합을 위한 소프트웨어 도구 매 커밋마다 프로젝트 빌드, 단위 테스트 등의 과정을 개발자 대신 자동화 1) Travis CI Github 에서 진행되는 오픈소스 프로젝트를 위한 지속적인 통합 서비스 Private Repository 는 유료 관리가 필요 없는 무료 클라우드 기반 호스팅 제공 전용 CI/CD 서버가 필요하지 않음 느린 속도와 제한된 옵션 제공 2) Jenkins 가장 널리 사용되는 오픈소스 CI 도구 사용자 정의 옵션 방대한 양의 플러그인 지원 다양한 적용사례 및 풍부한 레퍼런스 별도의 서버 필요 시스템 구성 및 사용자 정의 시간이 오래 걸림 3) 공통점 github의 webhook 지원이 필요 1.1 CI 환경 구축 1. docker 설치 sudo..
정관사 남성 여성 중성 복수 1: 주격 der Vater die Mutter das Kind die Leute 2: 소유격 des Vaters der Mutter des Kindes der Leute 3: 에게격 dem Vater der Mutter dem Kind den Leuten 4: 목적격 den Vater die Mutter das Kind die Leute der 남성 1격 / 여성 2, 3 격 / 복수 2격 die 여성 1, 4격 / 복수 1, 4격 das 중성 1, 4격 des _s 남성 2격 / 중성 2격 dem 남성 3격 / 중성 3격 den 남성 4격 / 복수 3격 (_n) 부정관사 - 단수 전용 남성 여성 중성 1: 주격 ein Vater eine Mutter ein Kind 2: ..

1. Iterator 패턴 for 문 루프 변수 i 의 역할을 추상화해서 일반화시킨 것 무엇인가 많이 모여있는 것 중에서 하나씩 끄집어내어 열거하면서 전체를 처리하는 일을 할 때 이 패턴을 적용 예제 프로그램 - 책꽂이 책꽂이에 책을 넣은 후, 순서대로 하나씩 다시 끄집어 내서 책 이름을 표시하는 프로그램 Aggregate 인터페이스 -> Iterator 객체를 생성하는 추상 메소드 가짐 Iterator 인터페이스 hasNext() : 다음 메소드가 있는지 체크하는 추상 메소드 next(): 다음 원소를 꺼내는 추상 메소드 BookShelf 클래스 - Aggregate 구현 books Book 클래스의 배열 last Book 객체들이 담긴 배열 사이즈 getBookAt(int index) appendBo..

1. 오픈소스 SW 1.1 Open-Source Software 소스 코드를 공개해 누구나 특별한 제한 없이 그 코드를 보고 사용할 수 있는 오픈 소스 라이선스를 만족하는 소프트웨어 Free -> 제한 없음, 자유로운 사용 - 무료가 아님 - 사용, 수정, 재배포로부터 자유로움 - 어떤 목적으로도 라이센스를 준수하는 한 자유로운 사용 1.2 오픈소스의 양방향 프로세스 오픈소스 사용하기 오픈소스 기여하기 오픈소스 공개하기 1) 오픈소스 사용하기 소프트웨어는 저작권, 특허권, 상표권, 영업비밀 등으로 보호됨 - 소프트웨어는 개발과 동시에 자동으로 독점 권리를 보호 오픈소스 소프트웨어는 개발자와 사용자 간의 사용 방법 및 조건의 범위를 명시한 라이선스로 권리 보호 - 소스코드를 개방했을 뿐, 지식재산권으로 보..

1. Link layer nodes: hosts & routers 링크 통신 경로 상의 인접한 노드들을 연결하는 통신 채널 데이터그램을 링크 계층 프레임으로 캡슐화해서 링크로 전송 서로 다른 링크를 통해 서로 다른 링크 프로토콜에 의해 데이터그램을 전송 WiFi -> Ethernet datagram을 출발지 호스트에서 목적지 호스트로 이동시키기 위해서는 데이터그램을 종단간 경로의 개별 링크로 이동시켜야만 한다. 각 링크 프로토콜은 서로 다르지만 데이터 전송 기능 역할은 같음 링크 계층이 제공하는 서비스 프레임화 datagram의 앞부분에 header를 붙이고, 끝에 trailer를 붙여서 프레임을 만든다. MAC 주소는 헤더부분에 들어가서 source, destination의 식별자가 된다. 신뢰성있는 ..