Level : WORDPRESS BOOK LINKEDIN PATENT Send Mail 동냥하기 hajunho.com

반응형

중력이 강한 곳의 시간은 느리게 흐른다.

서버 개발자 개꿀.

deepseek 서버 개발자는 매우 힘든 시기를 보낼 것이다.

부분을 일반화하는 수많은 사람들을 화법을 빌려서 제목을 지어 보았다.

 

라고 구구절절이 써 두고 이제야 글을 올리는데, 가만히 있어도 deep seek 관련한 글이 너무 많이도 올라와서다. deepseek는 나오자마자 사용 후 IT 관련 정부 기관 일하시는 분께 말씀을 드렸는데, 서버 운영 비용이 너무 크고 곧 o3 나올 것이라 별로 신경 안 쓰셔도 됩니다였다. 로컬에서 대용량이라는 것은 이미 다른 글에서도 밝혔고. 몇몇 페친 분은 이미 컴퓨터 여러 대 돌려서 o1 이 되는 것만 해도 매우 좋은 결과라고 하셨다. 링크드인에서는 관련 기술을 뒷받침하는 수많은 논문과 설명이 쏟아져 나오는데.

 

난 deepseek는 사기라고 생각한다. 일단 중국이라서 그렇고. transformer와 CUDA를 벗어나지 못하는 이상, 완전히 다른 기술이라기보다는 퍼포먼스 튜닝에 가깝다고 가설을 세우고 접근하면 매우 빠르게 요점 파악이 가능하기 때문이다.

 

요즘 로컬 LLM 쓰는 사람들 대부분은 올라마 기반이었다. 대학교수, LLM 글 쓰는 사람들은 어쩔 수 없다. 그냥 젤 쉬운 것 위주로 갈 수밖에 없는데, deep seek의 경우

LLM 소스 받으면 1 테라 먹고 시작하고  base 말고 chat 모델도 받으면 2 테라가 넘어간다. 올라마로 받아도 400기가 넘는 모델이다. 맥에서 8 테라 이상 구성한다는 것은 350 만원 추가이기 때문에 이미 범용성은 나가리라는 것이다. 결국 클라우드로 갈 수밖에 없고, deepseek를 선택해서 쿠팡에 많이 나와있는 번역기를 만든다고 해도.

 사람들이 바보도 아니고 그냥 deepseek 쓰다가 o3 나오면 또 o3 쓰고 ,... 편하게 옮겨가는 것만큼, 또다시 편하게 돌아갈 수 있는 방향이 될 수밖에 없다.

 

o3는 중급 프로그래머 코딩은 종결시킬 가능성이 높다. deepseek 도 그렇다면 모르겠지만 아직 o1이랑 deepseek의 코딩 능력은 수 없이 도와줘야 하는 2년 차(최근 실망해서 또 줄였다) 개발자 정도 수준이다. 분명 아니라고 하는 개발자 있을 것이다. 퍼즐도 금방 만드는 GPT가...라고 하면 

https://youtu.be/ynQDSS6 CmGI? si=9 ziFJI0_UXX05 TWo

 

이거 만들어 보라고 하고 싶다. 매우 간단한 퍼즐 게임과 미니 게임으로 구성되어 있다.

그러면 또 말할 것이다. 연매출 4조를 찍는 게임을 어떻게 만드냐고. 결국 대화의 끝은

 

그냥 변명의 연속, 궤변의 연속인 것이다.

 

deepseek는 이미 다른 서비스 강자(뤼튼이나 퍼플렉시티)들이 본인들 서비스에 녹여내고 서버 비용 고민 단계에 들어서 있을 것이다.

 

간단한 2진 분류 모델 하나 만드는데도 엄청난 데이터가 필요하다.

모니터 촬영분과 프린터 자료 분류에만 이 정도의 데이터가 필요하다. 이것도 외장하드 제외한 것이고 외장하드에 3T 자료를 더해야 한다. 상용 제품은 7:3으로 학습:검증하지 않는다. 검증을 훨씬 더 많이 하고 사람 손도 많이 간다. 그래서인지 내가 만든 모델은 99.99%의 정확도를 보여주었고, B2B 세미나에서는 30만 장을 40분 안에 분류했기에 모두가 AI의 2진 분류의 힘을 보았다. 물론, 챗봇 매거진을 만든 것처럼 사실 AI라 하고 시진 않고 그냥 딥러닝의 한 종류라고 하고 싶다.

 

실제로 AI 필드에 있는 사람들은 deep seek에 대한 논문과 구조적 설명을 하고 또 그게 이미 한 것이면 그냥 조용히, 묵묵히 자기 일을 한다. 나의 경우 이것을 안다고 말해야 그런 개발자들이 내가 쉽게 쓰고 있는 다른 매거진도 외면하지 않을 것이며, 관심 또한 필요하기에 이런 글을 남겨준다.

 

딥티크는 아직 해결해야 할 과제가 많지만, AI 분야의 새로운 가능성을 보여주는 모델임에는 틀림없다. 모든 모델은 장단점이 있으니, 단점을 극복하고 장점을 살린다면, 충분히 경쟁력 있는 모델로 성장할 수 있을 것이다. 하지만 deepseek 서버 개발자의 경우, 모델의 잦은 업데이트와 변화에 대응해야 하므로 힘든 시기를 겪을 것이다. 그동안 openai 서버 개발자의 경우 한숨 돌릴 것이고. 그렇다고 사용자 이탈이 일어날까?

 

오픈 AI는 달리, 소라 등 서비스가 완벽하진 않지만 카카오톡이 쇼핑, 은행, 인증, API 등의 서비스를 버무려서 사용자 이탈을 막았듯이 o3-mini가 공개된 이상 o3 서비스까지 큰 사용자 이탈은 없을 것이다. nvidia도 주식이 싸진 만큼 중국에서 더 구매를 할 것이라는 생각이다. 다만, 언론 플레이를 도와줘야 더 싸게 살 수 있을 것이고 종국에는 중국 기업이 될 거라 확신하고 있다. 요즘 중국 자본 플레이를 봤을 때 또 미국이 대응하는 방식을 봤을 때 당연한 moving이다. 트럼프만 무기가 있을까? 진짜 제조는 모두 중국, 대만에서 이루어졌고 미국 제조업은 중국에 뺏긴 지 오래다. 그래서 오래전부터 미국에 공장을 세우게 규제했고, 다른 나라를 압박했다.

 

난 이제 트럼프가 미국 대통령이 되고 15만 명의 한국인이 쫓겨나게 될 지금 시점이 미국과의 관계를 정리하고 가까운 중국과 함께 새로운 시작을 해야 하는 시기라고 생각한다. 그러면 통일도 사실 요원하지 않다. 미국에 단 1대의 자동차를 팔지 않아도 미국과 관계 정리 한다는 마케팅으로 중국에 팔면 몇 배는 더 이익일 것이다. 어차피 지난 역사를 돌이켜 보면 한국은 단일 민족도 아닐뿐더러 미국 보다는 중국과 훨씬 가까운 민족이기 때문이다.

 

쓰다 보니 또 삼천포로 더 빠질 것 같다. 그리고 이 매거진의 정체성은 바로 쓸 다음 글, '멀티모달'에서 마무리를 지으려고 한다. 결론만 미리 말하면.

 

인공지능이라는 말에 겁먹을 필요 없다. 그냥 챗봇이며, 멀티모달 차용으로 다양한 기능이 더 들어간 것뿐이다. 알파고 때 스스로 바둑을 두진 않았고, 로봇도 뒷 텀블링처럼 신기한 것만 하지 집에 와서 우리 주방에서 간단한 계란 볶음밥 하나 못하고 있다. 사람들이 사람 모양의 로봇을 만들어 온지 지난 30년 동안 말이다.

그래서 챗봇에서 만드는 개발자 모임의 핵심 주축은 결국 하드웨어를 다루는 사람들이고, 이미 세팅되어 있다.

 

독자께서는 딱히 미래에 대해서 고민하지 말고, 각자 자리에서 스무스하게 변화되는 미래를 맞이하고 시간 되실 때 개발자 모임에 참석해서 신기한 사람들 구경하거나 함께 동참하거나 본인이 생각한 이야기를 하거나 모르는 부분은 배우고 가면 되겠다. 내 글을 단 1도 읽지 않았더라도 또 편하게 가르쳐 줄 많은 사람들이 있을 것이다. 기본적으로 사람 위에 인공지능을 생각하는 사람들은 몇 안 되는데 그들이 가진 마이크가 참 크다고 생각하는 것 같다. 그들에게는 이 매거진이 바로 hedge(방어책)다.

 

선박 네트워크 보안 + 추가적인 `constexpr` 사용법

**OT(운영 기술)와 IT(정보 기술) 네트워크 분리를 통한 네트워크 보안**

---

### **1. OT와 IT의 개념**

**OT(Operational Technology, 운영 기술)**

- **정의**: 물리적 장비나 프로세스를 감시하고 제어하는 하드웨어와 소프트웨어 시스템.
- **예시**: 산업 제어 시스템(ICS), SCADA 시스템, 공장 자동화 장비 등.
- **특징**:
  - 실시간성 및 안정성이 중요.
  - 일반적으로 폐쇄형 네트워크로 구성.
  - 업데이트 및 패치 주기가 길고, 보안 취약점이 존재할 수 있음.

**IT(Information Technology, 정보 기술)**

- **정의**: 데이터를 생성, 처리, 저장 및 전달하는 데 사용되는 기술.
- **예시**: 사무용 컴퓨터, 서버, 네트워크 장비, 데이터베이스 등.
- **특징**:
  - 기밀성, 무결성, 가용성이 중요.
  - 인터넷과의 연결이 일반적.
  - 정기적인 업데이트 및 보안 패치 적용.

---

### **2. OT와 IT 네트워크 분리의 필요성**

1. **보안 위협 증가**

   - 사이버 공격이 점점 정교해지면서 OT 시스템도 공격 대상이 되고 있습니다.
   - OT 시스템이 IT 네트워크와 연결되어 있으면 공격자가 IT 네트워크를 통해 OT 시스템에 접근할 수 있습니다.

2. **시스템 안정성 보장**

   - OT 시스템은 실시간 운영과 안정성이 중요하기 때문에 외부 위협으로부터 보호되어야 합니다.
   - 네트워크 분리를 통해 OT 시스템의 안정적인 운영을 유지할 수 있습니다.

3. **규제 및 표준 준수**

   - 산업별 보안 규제나 국제 표준에서 OT와 IT 네트워크의 분리를 요구하는 경우가 있습니다.
   - 예: NERC CIP, IEC 62443 등.

---

### **3. 네트워크 분리 방법**

**1. 물리적 분리(Physical Separation)**

   - **설명**: OT와 IT 네트워크를 완전히 별도의 물리적 인프라로 구축.
   - **장점**:
     - 네트워크 간 직접적인 연결이 없어 보안성이 높음.
     - OT 시스템의 안정성을 최대한으로 보장.
   - **단점**:
     - 구축 및 유지보수 비용이 높음.
     - 데이터 교환이 필요한 경우 불편함.

**2. 논리적 분리(Logical Separation)**

   - **설명**: VLAN, 서브넷팅, 방화벽 등의 기술을 이용하여 네트워크를 논리적으로 분리.
   - **장점**:
     - 기존 인프라를 활용할 수 있어 비용 효율적.
     - 데이터 교환이 필요할 때 유연하게 대응 가능.
   - **단점**:
     - 설정 오류나 취약점을 통해 네트워크 침입 가능성 존재.
     - 물리적 분리만큼의 보안성은 보장되지 않음.

---

### **4. 네트워크 분리 구현 시 고려사항**

**1. 방화벽 및 보안 장비 구성**

   - **방화벽 설치**: OT와 IT 네트워크 사이에 방화벽을 설치하여 트래픽을 제어.
   - **접근 제어 목록(ACL)**: 허용된 IP와 포트만 접근 가능하도록 설정.

**2. 침입 탐지 및 방지 시스템(IDS/IPS) 도입**

   - **IDS**: 네트워크 트래픽을 모니터링하여 이상 징후를 탐지.
   - **IPS**: 탐지된 위협을 자동으로 차단.

**3. 데이터 다이오드(Data Diode) 사용**

   - **설명**: 물리적으로 한 방향으로만 데이터가 흐를 수 있도록 하는 장비.
   - **장점**: OT 네트워크로의 역방향 접근을 완전히 차단.

**4. 안전한 데이터 교환 방법 마련**

   - **DMZ(Demilitarized Zone) 구축**: OT와 IT 네트워크 사이에 중간 영역을 만들어 안전한 데이터 교환.
   - **파일 전송 시 보안 프로토콜 사용**: SFTP, FTPS 등 암호화된 프로토콜 사용.

**5. 접근 권한 관리**

   - **최소 권한 원칙 적용**: 필요한 최소한의 권한만 부여.
   - **강력한 인증 방식 도입**: 이중 인증(MFA) 등 보안 강화.

**6. 시스템 및 소프트웨어 업데이트**

   - **정기적인 패치 관리**: 보안 취약점을 최소화.
   - **업데이트 시 영향 분석**: OT 시스템의 특성상 업데이트가 시스템에 미치는 영향을 사전에 검토.

**7. 직원 교육 및 인식 제고**

   - **보안 교육 실시**: 사회공학적 공격에 대비.
   - **보안 정책 준수 강조**: 정책 위반 시 발생할 수 있는 위험 인식.

---

### **5. OT/IT 네트워크 분리의 이점**

1. **보안 강화**

   - 외부로부터의 침입 경로를 최소화하여 사이버 공격에 대한 노출 감소.

2. **운영 안정성 향상**

   - IT 네트워크의 변화나 문제로부터 OT 시스템을 보호하여 생산성 유지.

3. **규제 준수 용이**

   - 산업 표준 및 규제 요구 사항을 충족하여 법적 리스크 감소.

---

### **6. 통합 관리의 필요성**

- **통합 보안 관제**

  - 분리된 네트워크의 보안 이벤트를 중앙에서 관리하고 모니터링.
  - SIEM(Security Information and Event Management) 시스템 도입.

- **정책 일관성 유지**

  - OT와 IT 모두에 적용되는 보안 정책을 수립하여 관리의 효율성 증대.

---

### **7. 최신 동향**

- **IoT 및 IIoT의 확산**

  - 산업용 사물인터넷 기기의 증가로 OT 네트워크의 보안 위협이 증가.
  - 추가적인 보안 계층과 네트워크 세분화 필요.

- **제로 트러스트 보안 모델 도입**

  - 내부 네트워크라도 신뢰하지 않고 모든 접근을 검증하는 모델.
  - OT 환경에서도 적용을 검토.

---

### **8. 결론 및 권장 사항**

- **전문가와의 협업**

  - 네트워크 분리 및 보안 구축 시 보안 전문가와 협력하여 최적의 솔루션 도출.

- **지속적인 보안 평가**

  - 정기적인 보안 점검과 모의 해킹을 통해 취약점 발견 및 개선.

- **비상 대응 계획 수립**

  - 사이버 공격이나 보안 사고 발생 시 대응 절차와 복구 계획 마련.

---

**추가 질문이나 특정 부분에 대한 상세한 설명이 필요하시면 언제든지 알려주세요!**

PROMISC(무차별) 모드를 활용한 네트워크 모니터링은 좋은 접근법입니다. 하지만 선박 네트워크의 특수성을 고려해야 할 부분들이 있습니다:

1. 선박 네트워크 특징
```
[일반 네트워크와 유사한 부분]
- TCP/IP 기반 통신
- 이더넷 스위치/라우터 사용
- LAN 구성

[선박만의 특수성]
- OT(운영기술) 네트워크 존재
- 위성통신 구간
- 항해/기관 시스템 연결
```

2. PROMISC 모드 활용 방안
- **모니터링 포인트 설정**
  * VSAT 라우터 연결 지점
  * OT-IT 네트워크 경계
  * 주요 서버 연결 구간

- **탐지 가능한 공격**
  * ARP 스푸핑
  * MAC 위조
  * 패킷 스니핑 시도
  * 비정상 트래픽

3. 고려해야 할 사항
- **대역폭 제약**
  * 위성통신 구간의 제한된 대역폭
  * 모니터링 트래픽 양 조절 필요

- **분리된 네트워크**
  * 항해장비 네트워크
  * 기관 제어 네트워크
  * 승무원 인터넷 네트워크

4. 구현 방안
```
[모니터링 시스템 구성]
SPAN/미러링 포트 -> 패킷 수집 -> 분석 엔진 -> 알림 시스템

[주요 기능]
- 실시간 트래픽 모니터링
- 이상 패턴 탐지
- 로그 기록
- 알림 발생
```

5. 보안 강화 포인트
- **네트워크 세그먼테이션**
  * OT/IT 네트워크 분리
  * VLAN 구성
  * 접근 제어 강화

- **모니터링 정책**
  * 중요 시스템 트래픽 우선 감시
  * 보안 이벤트 정의
  * 대응 절차 수립

이러한 접근은 기존 네트워크 보안 기술을 선박환경에 맞게 최적화하는 좋은 사례가 될 수 있습니다.

 

#### 1. `constexpr` 함수
`constexpr` 함수는 본문 바디에 있는 모든 문장이 컴파일 시간에 평가될 수 있어야 합니다. 이는 함수의 모든 파라미터가 상수 표현식이어야 한다는 것을 의미하지는 않지만, 호출 시점에 주어진 인자가 상수 표현식인 경우 컴파일 시간에 평가됩니다.

예를 들어:
```cpp
constexpr int factorial(int n) {
    return (n <= 1) ? 1 : (n * factorial(n - 1));
}

int main() {
    constexpr int val = factorial(5);  // 컴파일 시간에 계산됨
    int runtime_val = factorial(5);    // 런타임에 계산됨
    return 0;
}
```
위의 코드에서 `factorial(5)`는 `constexpr`로 컴파일 시간에 계산되어 `val` 변수에 할당됩니다. 그러나 `runtime_val` 변수는 런타임에 계산됩니다.

#### 2. `constexpr` 멤버 함수
클래스의 멤버 함수도 `constexpr`로 정의할 수 있습니다. 이는 객체의 멤버 변수를 컴파일 시간에 초기화하거나, 객체를 `constexpr`로 생성하는 데 유용합니다.

```cpp
class MyClass {
public:
    constexpr MyClass(int val) : value(val) {}
    constexpr int getValue() const { return value; }

private:
    int value;
};

int main() {
    constexpr MyClass obj(5);
    static_assert(obj.getValue() == 5, "Value mismatch!");  // 컴파일 시간에 확인됨
    return 0;
}
```
위 코드에서 `MyClass`는 `constexpr` 생성자를 가지고 있으며, `getValue` 메소드는 `constexpr`로 정의되어 컴파일 시간에 호출될 수 있습니다.

#### 3. `constexpr` 변수
`constexpr` 변수는 명시적으로 컴파일 시간에 상수로 취급됩니다.

```cpp
constexpr int a = 10;
constexpr int b = a + 20;
```
위의 예제에서 `a`와 `b`는 모두 컴파일 시간에 계산되어 상수로 정의됩니다.

### `constexpr`과 `const`의 차이점

- **`const`**:
  `const` 키워드는 변수의 값을 변경할 수 없음을 의미합니다. 그러나 `const` 변수는 컴파일 시간에 반드시 초기화될 필요가 없습니다.

  ```cpp
  const int x = someFunction();  // someFunction()은 런타임에 호출됨
  ```

- **`constexpr`**:
  `constexpr` 키워드는 컴파일 시간에 평가되고 상수로 간주되는 값을 의미합니다. 컴파일러가 가능한 코드를 최적화할 수 있도록 도와줍니다.

  ```cpp
  constexpr int y = 10;
  ```

### `constexpr`을 사용할 때 고려해야 할 점

1. **제약**:
   `constexpr` 함수는 반복문, 조건문 등을 사용할 수 있지만, 모든 식은 컴파일 시간에 평가될 수 있어야 합니다. 즉, 실행에 종속적인 코드나 동적 메모리 할당은 허용되지 않습니다.

2. **C++ 표준의 발전**:
   C++14부터는 `constexpr` 함수가 더 많은 기능을 제공하며, C++17에서는 가변 길이의 반환 타입을 지원하도록 확장되었습니다.

### 요약

`constexpr`은 컴파일 시간 상수 표현식을 정의하는 강력한 도구로, 성능 최적화, 메모리 효율성, 타입 안정성을 제공합니다. 이를 통해 코드가 더욱 효율적이고 예측 가능하게 됩니다. 컴파일러가 상수 값을 미리 계산할 수 있기 때문에, 실행 시간 성능이 크게 향상될 수 있습니다. 여러 용도로 활용할 수 있는 `constexpr`의 다양한 활용법을 익히고 적절하게 적용하면, 코드를 더욱 최적화하고 안정성 있게 작성할 수 있습니다.

 

iOS 쪽...

Snapkit Error type - 1

interfacebuilder의 constraints는 무시하고 했는데 이제 같이 고려해야 한다. 

캘린더, 메세지 뷰 등 오픈소스 땡겨서 넣고 나니 충돌 에러가 많네.

 

에러가 다음과 같은 양상을 띤다면, IB constratins와 snapkit 의 제약 사항을 함께 따져봐야 한다.

 

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

2018-12-12 09:18:49.725504+0900 Bridge2[12529:869661] [LayoutConstraints] Unable to simultaneously satisfy constraints.

Probably at least one of the constraints in the following list is one you don't want. 

Try this: 

(1) look at each constraint and try to figure out which you don't expect; 

(2) find the code that added the unwanted constraint or constraints and fix it. 

(

    "<SnapKit.LayoutConstraint:0x282946400@TendencyCalendarPopUP.swift#140 UIButton:0x1036cba20.top == UILabel:0x1036cb730.bottom + 3.0>",

    "<SnapKit.LayoutConstraint:0x282947180@TendencyCalendarPopUP.swift#166 UILabel:0x1036ccf40.top == UILabel:0x1036cb730.bottom + 10.0>",

    "<SnapKit.LayoutConstraint:0x282947240@TendencyCalendarPopUP.swift#168 UILabel:0x1036ccf40.top == UIButton:0x1036cba20.bottom + 10.0>"

)

 

Will attempt to recover by breaking constraint 

<SnapKit.LayoutConstraint:0x282947240@TendencyCalendarPopUP.swift#168 UILabel:0x1036ccf40.top == UIButton:0x1036cba20.bottom + 10.0>

 

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.

 

The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

 

AI 통합 엔지니어 (AI Integration Engineer): 이미 만들어진 AI 모델을 가져와 시스템에 통합하고, AI 파이프라인을 구성하는 역할을 강조한 직함입니다.
ML 파이프라인 엔지니어 (ML Pipeline Engineer): 기계 학습 모델의 워크플로우 설계, 데이터 전처리, 모델 배포 등을 포함한 ML 파이프라인 구축과 관련된 직무를 나타내는 명칭입니다.
AI 운영 엔지니어 (AI Operations Engineer): AI 모델의 운영, 배포, 모니터링을 담당함으로써 AI 모델을 프로덕션 환경에 원활하게 적용하는 역할을 강조하는 직함입니다.
데이터 인프라 엔지니어 (Data Infrastructure Engineer): 데이터 및 AI 인프라를 설계하고 유지 관리하며, AI 모델이 실제 비즈니스에 적용될 수 있도록 하는 작업을 중점적으로 수행합니다.
AI 시스템 엔지니어 (AI Systems Engineer): AI 시스템의 전체적인 설계 및 구현, 모델 통합 및 배포를 담당하는 역할을 강조하는 명칭입니다.
AI 배포 엔지니어 (AI Deployment Engineer): AI 모델의 배포와 관련된 프로세스 전반을 담당하는 역할을 강조한 직함입니다.
AI 오케스트레이션 엔지니어 (AI Orchestration Engineer): AI 파이프라인과 워크플로우의 자동화 및 최적화를 담당하는 역할을 나타내는 명칭입니다.

 

반응형

'HJH IT Logs' 카테고리의 다른 글

추리와 추론의 차이  (0) 2019.01.14
쓰고 앞으로 나아간다.  (0) 2019.01.11
LoRA 인가 봉가? 탐지  (0) 2019.01.07
사르뜨르가 했던 말과 내 생각  (0) 2019.01.07
constexpr  (0) 2019.01.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기