자재·내역 자재구매 및 공사요청 [내역 및 공정표 제공] 오브젝트 오브젝트콜렉션 [공간 설계 의뢰, 오브젝트 구매] 부동산 부동산매매가 산정 회의실 온라인 회의실/메신저
Login | Join
CHIHO : 치호건축사·설계·시공·디자인·자재·부동산·지역이슈
Login | Join

블로그 글

전체기사

Google Ads

Banner

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

치호건축사사무소 – 치호뉴스 최신 이슈

검색어: Via
배너 이미지
Via Jason Fervento • Via • 2025년

Via Jason Fervento • Via • 2025년

펼쳐보기

치호건축 블로그 - 이미지 1

ViaJason FerventoVia2025년





검색어 "Via"(이)가 title · content에 포함되었습니다.

히트펌프 동작 원리...? 장점만 있나...? 화석 에너지 대신 냉난방을 책임지는 히트펌프란 무엇인가

히트펌프 동작 원리...? 장점만 있나...? 화석 에너지 대신 냉난방을 책임지는 히트펌프란 무엇인가

펼쳐보기

히트펌프란 무엇인가? 원리부터 장단점까지 쉽게 정리

최근 에너지 산업에서 히트펌프가 다시 주목받고 있다. 이름만 들으면 어렵게 느껴질 수 있지만, 원리는 생각보다 단순하다.

히트펌프는 말 그대로 열을 한 곳에서 다른 곳으로 옮기는 장치다. 난방할 때는 바깥의 열을 실내로 끌어오고, 냉방할 때는 실내의 열을 바깥으로 내보낸다. 즉, 열을 새로 만들어내기보다 이미 존재하는 열을 이동시키는 방식이기 때문에 효율이 높다.

쉽게 말하면 냉장고와 에어컨, 그리고 난방기의 원리가 하나의 시스템 안에서 응용된 것이라고 볼 수 있다.

냉장고는 내부의 열을 밖으로 빼내고, 에어컨도 실내의 열을 밖으로 내보낸다. 반대로 히트펌프는 외부의 열을 실내로 가져와 난방에도 활용할 수 있다. 그래서 하나의 장치로 냉방과 난방을 모두 수행할 수 있다는 점이 큰 특징이다.

이 장치의 핵심은 바로 냉매다.

냉매는 액체와 기체 상태를 오가면서 열을 흡수하거나 방출하는 물질이다. 우리가 땀을 흘리고 나서 몸이 시원해지는 이유도 비슷하다. 땀이 증발하면서 우리 몸의 열을 빼앗아 가기 때문이다. 히트펌프 역시 이와 유사하게 냉매가 증발할 때 주변의 열을 흡수하고, 응축할 때는 그 열을 다시 방출한다.

히트펌프의 작동 과정은 크게 네 단계로 정리할 수 있다.

첫째, 압축기(컴프레서) 에서 냉매를 압축한다.

냉매가 압축되면 압력과 온도가 함께 올라간다. 즉, 차갑던 냉매가 뜨겁고 고압의 상태로 바뀌는 것이다.

둘째, 응축기(컨덴서) 에서 열을 방출한다.

압축되어 뜨거워진 냉매는 실내 열교환기를 지나면서 열을 내놓는다. 이때 실내는 따뜻해지고, 냉매는 다시 액체 상태로 변한다.

셋째, 팽창밸브 를 통과하면서 압력과 온도가 떨어진다.

고압 상태의 냉매가 좁은 통로를 지나 급격히 압력이 낮아지면 온도도 함께 떨어진다. 분무기나 스프레이를 오래 사용하면 차가워지는 현상과 같은 원리다.

넷째, 증발기 에서 외부의 열을 흡수한다.

차가워진 냉매는 바깥 공기나 물, 지열 등으로부터 열을 흡수하면서 다시 기체가 되고, 이 과정이 반복된다.

이 네 단계가 순환하면서 히트펌프는 열을 계속 이동시킨다.

난방 시에는 외부의 열을 실내로 가져오고, 냉방 시에는 이 과정을 반대로 돌려 실내의 열을 외부로 배출한다. 그래서 최근 가정용 냉난방기나 온수 시스템, 산업 설비 등 다양한 분야에서 활용이 늘고 있다.

그렇다면 히트펌프가 왜 이렇게 효율적일까.

가장 큰 이유는 전기를 사용해 직접 열을 만드는 것이 아니라, 주변에 이미 존재하는 열을 옮겨오기 때문이다. 일반적인 전기난방은 1의 전기를 써서 1 정도의 열을 만드는 구조에 가깝지만, 히트펌프는 1의 전기로 그 이상의 열을 이동시킬 수 있다.

보통 성능계수(COP)는 약 3.5~4.5 수준으로 알려져 있으며, 이는 전기 1만큼을 사용해 3~4배 이상의 열 효과를 얻을 수 있다는 의미다.

장점도 분명하다.

에너지 효율이 높고, 탄소배출을 줄이는 데 유리하며, 난방과 냉방을 하나의 시스템으로 통합할 수 있다. 특히 가스 의존도를 낮추려는 국가나 지역에서는 매우 중요한 대안으로 떠오르고 있다.

하지만 한계도 있다.

우선 초기 설치비가 높다. 일반 보일러보다 훨씬 큰 비용이 들 수 있고, 설치 공간도 필요하다. 또한 매우 추운 지역에서는 외부에서 가져올 수 있는 열이 줄어들어 성능이 떨어질 수 있다. 국내처럼 아파트 비중이 높은 주거 환경에서는 설치와 적용 방식에 제약이 생기기도 한다.

결국 히트펌프는 완벽한 만능 장치라기보다,

고효율·저탄소 시대에 가장 현실적인 냉난방 기술 중 하나라고 보는 것이 맞다.

이미 존재하는 열을 어떻게 더 똑똑하게 이동시킬 것인가. 히트펌프는 그 질문에 대한 매우 설득력 있는 답이다.




■ 특징 1 : 친환경, 운전비 절감



■ 특징 2 : 설치, 시공 편리성 증대


■ 특징 3 : -25℃에서 우수한 난방성능

플래쉬 인젝션 회로는 높은난방성능의 핵심 구성품입니다. 이기술은 영하의 실외온도에서 운전되는 경우에도 난방용량을 30% 능가하여 운전범위가 -25℃까지 확대되었습니다. 

한랭지역에서도 안전하게 난방에 이용.




■ PUHZ SERIES 사양

항목 / 형명

PUHZ-HW140XHA2

비고

난방

냉방

전원



3상 380V 60㎐



성능

kW

14 (12,040 kcal/h)

12.5 (10,750 kcal/h)



순환수량

L/mm

40.1

35.8



소비전력

kW

4.40

4.82

최대입력전류 35A

COP



3.18

2.59



외형치수(폭×길이×높이mm)

1,020×330×H1,350

베이스포함 높이 1,673

압축기

메이커(모델)

ANB42FJJMT (MITSUBISHI ELECTRIC)



형식×수량 / 기동방식

전밀폐 스크롤 x 1대 / 인버터기동



용량제어

100 ~ 40 - 0

100 ~ 15 - 0



정격출력

kW

2.5 x 1



냉매

종류

R410A



충진량(계통½)

kg

4.3



공기측 열교환기 형식

FIN & COIL TYPE



수측


열교환

형식

판형열교환기

25A (1½B, 나사식 마감)

입/출구배관

A

25 / 25



송풍기

형식 / 출력×수량

kW

프로펠러 휀 / 0.074 × 2



풍량 (냉/난방)

m³/min

100



제어

제상

토출가스 리버스 방식



수온제어

출구온도제어



운전제어

마이콤 콘트롤러 (전자동 운전)



냉난방 외기/출구온도(℃)

외기온도 : -25 ~35

외기온도 : -5 ~ 46



냉온수출구온도 : 35 ~ 60

냉온수출구온도 : 5 ~ 25



보호장치

과전류계전기, 고저압압력개폐기, 토출가스온도센서, 동결방지센서



소음

dB

53

실외기로부터 1m

제품중량/운전중량

kg

134 / 148



※ 표준적용온도 : 난방능력 : 외기온도 : 7℃ , 온수입구 : 40℃, 온수출구 : 45℃

※ 표준적용온도 : 냉각능력 : 외기온도 : 35℃ , 냉수입구 : 12℃, 냉수출구 : 7℃

※ 규격 및 사양은 제품의 개량으로 사전 예고없이 변경될 수 있습니다.

※상기 사진은 표준제품 이미지로 현장의 설계사양 및 옵션 조건에 따라서 일부 변경 될 수 있습니다

주요사용처

수영장

수영장

목욕사우나

목욕사우나

리조트

리조트

호텔

호텔

체육시설

체육시설



검색어 "Via"(이)가 content에 포함되었습니다.

소규모 오피스 서버(Server) 구축 - Lenovo Thinkcentre M720q

소규모 오피스 서버(Server) 구축 - Lenovo Thinkcentre M720q

펼쳐보기

업로드 이미지


업로드 이미지

소규모 오피스 서버(Server) 구축 - Lenovo Thinkcentre M720q

리눅스(Linux): 운영체제의 “핵심(커널)” 이름. 윈도우/맥과 다른 계열.

우분투(Ubuntu): 리눅스를 바탕으로 만든 “배포판(Distribution)” 브랜드. (리눅스의 한 종류)

우분투 서버(Ubuntu Server): 우분투의 서버용 에디션(기본적으로 GUI 없이, 서버에 필요한 구성만).



그래서 정확히 쓰면:

“리눅스(계열) 중 하나인 우분투의 서버용 에디션(= Ubuntu Server 24.04 LTS)”

을 설치하자는 뜻이라서 “리눅스 우분투 서버”라고 줄여 부르는 거예요.

Desktop vs Server 차이는?

  • 커널/명령어는 동일하고, 기본 제공 패키지와 기본 설정이 다를 뿐.

  • Server: GUI 없음(가벼움), SSH/네트워크/서비스 운영에 최적. 24/7 서버에 딱.

  • Desktop: GUI 있음(편리하지만 무거움), 개발/일상용에 편함.

당신 목적(Flask 24시간 운용, 저전력, 가성비)이면 Ubuntu Server 24.04 LTS가 정답.

정확한 이름/파일

  • ISO 이름 예: ubuntu-24.04.1-live-server-amd64.iso

    (M720q 같은 x86-64 PC는 이걸 쓰면 됩니다)

0) M720q에 Ubuntu Server 24.04 LTS 설치를 처음부터 끝까지

준비물

  • USB 메모리 8GB 이상 1개

  • 모니터/키보드(설치 때만 필요)

  • 유선 LAN 케이블(설치 중 네트워크 자동 설정에 유리)


1) 설치 USB 만들기 (Windows에서)

  1. Ubuntu Server 24.04 LTS ISO 받기

    파일 이름 예: ubuntu-24.04.1-live-server-amd64.iso

  2. Rufus 실행 → USB 선택 → ISO 선택 → 옵션은 기본값(UEFI) 그대로 → Start

    (BalenaEtcher를 써도 괜찮음: Etcher 실행 → ISO 선택 → USB 선택 → Flash)

팁: M720q는 UEFI 잘 지원합니다. 파티션 스킴 GPT, Target UEFI로 두면 OK.


2) M720q 부팅 설정

  1. USB 꽂고 M720q 전원 ON

  2. F12 연타 → Boot Menu에서 USB 선택 (부팅목록이 안보이면 BIOS에서 USB Boot 허용 필요)

    • BIOS 진입: F1 연타

    • 필요한 설정(있으면):

      • Startup → CSM/Legacy: 기본 UEFI 유지

      • Security → Secure Boot: 기본 그대로 사용해도 보통 설치 가능 (안되면 Off)

      • Virtualization: 나중에 Docker에 유리하니 Enabled 추천

      • Auto power on after power loss: 정전 후 자동 켜짐 원하면 Enabled

저장 후 재부팅 → F12 → USB로 부팅.


3) Ubuntu Server 설치 마법사

화면 지시에 따라 순서대로:

  1. Language: Korean(또는 English)

  2. Keyboard: Korean(101/104 자동 인식)

  3. Network: 유선 LAN 꽂혀 있으면 DHCP로 자동 연결됨 (Wi-Fi는 나중에 해도 됨)

  4. Proxy / Mirror: 비워두고 넘어가도 OK

  5. Storage:

    • Use an entire disk 선택(단일 디스크 전체 사용)

    • 파일시스템: 기본 ext4 권장 (ZFS 필요 없으면 선택 X)

    • NVMe 250GB 하나면 그대로 진행

  6. Profile setup: 서버 사용자 만들기

    • 이름, 서버명(hostname), 사용자ID, 비밀번호 설정 (기억해두기)

  7. SSH: Install OpenSSH server 체크 (필수)

  8. Featured Server Snaps: 아무것도 선택하지 말고 넘어가기

  9. 설치 진행 → 완료 후 Reboot.

재부팅 직전에 설치 USB를 뽑아 주세요(계속 USB로 부팅되지 않도록).

SSH(Secure Shell)

“다른 컴퓨터(서버)에 안전하게 접속해서, 그 컴퓨터에서 직접 명령을 내려 쓸 수 있게 해 주는 통로”예요.

암호화돼서 도중에 엿보여도 내용이 안 풀립니다.


뭘 할 때 쓰나?

  • 원격 서버에 로그인해서 폴더 만들고, 파일 복사하고, 프로그램 설치/실행

  • Flask 서버 재시작, 로그 보기, 업데이트 등 전부 터미널로 처리

  • 파일 전송(SCP/SFTP)도 SSH 위에서 안전하게 가능


어떻게 동작해?

  • 서버 쪽: SSH 서버(sshd) 가 22번 포트에서 대기

  • 내 PC: SSH 클라이언트로 접속

  • 인증 방식: 비밀번호 또는 키(공개키/개인키) — 키 방식이 훨씬 안전


지금 바로 쓰는 방법 (당신 상황 기준)

1) 서버(우분투) 준비 확인

Ubuntu Server 설치할 때 OpenSSH server를 체크했다면 이미 켜져 있어요.

확인:

sudo systemctl status ssh

IP 주소 확인:

ip a   # 또는 서버 화면에 표시된 IP 확인

2) 접속(내 PC → 서버)

  • Windows 10/11: PowerShell 열고

ssh <서버사용자>@<서버IP>
# 예: ssh ubuntu@192.168.0.50

  • macOS/Linux: 터미널에서 위와 동일

처음 접속 시 “fingerprint 신뢰하겠냐” 묻는 건 정상 → yes.


비밀번호 대신 “키”로 접속(추천)

내 PC에서 키 만들기

ssh-keygen -t ed25519 -C "my-laptop"
# Enter, Enter, Enter로 넘어가면 ~/.ssh/id_ed25519 (개인키) / .pub(공개키) 생성

공개키를 서버에 등록

ssh-copy-id <서버사용자>@<서버IP>
# ssh-copy-id가 없으면:
# cat ~/.ssh/id_ed25519.pub 출력해서
# 서버의 ~/.ssh/authorized_keys 파일에 붙여넣기

이제부터는 비밀번호 없이:

ssh <서버사용자>@<서버IP>


안전하게 쓰는 습관

  • 개인키(id_ed25519)는 절대 공유 금지 (백업만 안전하게)

  • 서버 방화벽에서 SSH 허용:

sudo ufw allow OpenSSH
sudo ufw enable

  • 나중에 외부에 열 때는 포트포워딩 최소화 또는 VPN/Cloudflare Tunnel 사용 권장

  • 가능해지면 /etc/ssh/sshd_config에서 비밀번호 로그인 끄고(키만 허용) 보안 강화


초간단 치트시트

# 접속
ssh user@SERVER_IP

# 파일 보내기(로컬 -> 서버)
scp local.txt user@SERVER_IP:/home/user/

# 파일 가져오기(서버 -> 로컬)
scp user@SERVER_IP:/home/user/log.txt .

# 키 생성
ssh-keygen -t ed25519 -C "my-laptop"

# 키 등록(가능하면)
ssh-copy-id user@SERVER_IP





Flask 배포 순서

“기본 보안 + Flask 서비스”

1) 기본 업데이트 & 유틸

sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl htop unzip ca-certificates
sudo timedatectl set-timezone Asia/Seoul

2) 방화벽(UFW) 설정

sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp      # Nginx(HTTP)
# HTTPS 쓸 거면 다음도:
# sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status

3) SSH 보안(키 로그인 권장)

  • 로컬PC에서 키가 없다면 생성:

    ssh-keygen -t ed25519 -C "my-laptop"
    
  • 서버에 공개키 등록(가능하면):

    ssh-copy-id <서버사용자>@<서버IP>
    
  • (선택, 보안강화) 비밀번호 로그인 끄기:

    sudo nano /etc/ssh/sshd_config
    # 아래처럼 변경/추가
    PasswordAuthentication no
    PermitRootLogin no
    
    sudo systemctl reload ssh
    

4) 고정 IP(선택) — 서버 안정운영에 좋음

ip a          # 유선 인터페이스명 확인(ex: enp0s31f6)
sudo nano /etc/netplan/*.yaml

예시:

network:
  version: 2
  ethernets:
    enp0s31f6:
      addresses: [192.168.0.50/24]
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses: [1.1.1.1,8.8.8.8]

적용:

sudo netplan apply


Flask 배포 (도커 없이 깔끔 루트)

5) Nginx + Python 가상환경

sudo apt install -y nginx python3-venv python3-pip

6) 코드 가져오기

GitHub에 올린 저장소를 클론(예: firstcontainer1):

cd ~
git clone https://github.com/<아이디>/firstcontainer1.git
cd firstcontainer1
python3 -m venv .venv
source .venv/bin/activate
# requirements.txt가 있으면:
pip install -r requirements.txt
# 없으면 최소:
pip install flask gunicorn

7) 앱 로컬 구동 테스트

gunicorn -w 2 -b 127.0.0.1:5000 app:app

  • 다른 터미널/PC에서 http://<서버IP>:5000 접속해 확인(임시 테스트).

8) Nginx 리버스 프록시(80 → 5000)

sudo tee /etc/nginx/sites-available/flask <<'EOF'
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
EOF
sudo ln -s /etc/nginx/sites-available/flask /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

→ 이제 http://<서버IP>로 접속.

9) 부팅 자동 실행(systemd)

sudo tee /etc/systemd/system/flask.service <<'EOF'
[Unit]
Description=Flask via Gunicorn
After=network.target

[Service]
User=<서버사용자>
WorkingDirectory=/home/<서버사용자>/firstcontainer1
Environment="PATH=/home/<서버사용자>/firstcontainer1/.venv/bin"
ExecStart=/home/<서버사용자>/firstcontainer1/.venv/bin/gunicorn -w 2 -b 127.0.0.1:5000 app:app
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now flask
sudo systemctl status flask --no-pager

<서버사용자>를 실제 사용자명으로 바꿔 넣어줘(예: ubuntu).


(선택) HTTPS, 자동업데이트, 모니터링

10) HTTPS (도메인 있을 때)

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your.domain.com

11) 보안 업데이트 자동화

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

12) 모니터링/로그 보기

sudo apt install -y glances
glances   # 실시간 상태
journalctl -u flask -f   # Flask 서비스 로그 실시간


BIOS 전원 옵션(유용)

정전 후 자동 켜짐:

  • 부팅 시 F1 → BIOS → Power 또는 After power lossOn

A) Git으로 옮기기 (인증 해결됐을 때 제일 깔끔)

구름IDE 터미널에서

cd /workspace/firstcontainer1     # 네 프로젝트 폴더
git add .
git commit -m "deploy"
git branch -M main
git push -u origin main           # (비번 대신 PAT 또는 SSH)

서버(우분투)에서

cd ~
git clone https://github.com/<너아이디>/firstcontainer1.git
cd firstcontainer1
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt   # 없으면: pip install flask gunicorn

퍼블릭 저장소면 바로 되고, 프라이빗이면 PAT/SSH 필요(앞서 안내한 대로).


B) SSH로 직접 복사(가장 빨리 됨) — 추천

방법 B-1. scp 한 방에 복사 (구름IDE → 서버)

구름IDE 터미널에서

# 폴더 통째로 복사
scp -r /workspace/firstcontainer1  <서버사용자>@<서버IP>:/home/<서버사용자>/
# 예: scp -r /workspace/firstcontainer1 ubuntu@192.168.0.50:/home/ubuntu/

포트가 22가 아니면 -P 2222처럼 추가.

방법 B-2. rsync로 빠르고 반복 배포

rsync -avz --delete /workspace/firstcontainer1/  <서버사용자>@<서버IP>:/home/<서버사용자>/firstcontainer1/
# 마지막 슬래시( / ) 중요: 내용물만 동기화

방법 B-3. ZIP으로 묶어서 전송

cd /workspace/firstcontainer1
zip -r app.zip .
scp app.zip <서버사용자>@<서버IP>:~/
ssh <서버사용자>@<서버IP> 'mkdir -p ~/firstcontainer1 && unzip -o ~/app.zip -d ~/firstcontainer1 && rm ~/app.zip'


C) SFTP(그래픽 툴)로 드래그&드롭

윈도우면 WinSCP / 맥이면 Cyberduck:

  • 호스트: <서버IP>

  • 프로토콜: SFTP

  • 포트: 22

  • 사용자/비밀번호: 서버 계정

  • 접속 후 /home/<서버사용자>/firstcontainer1로컬 폴더 통째로 업로드


옮긴 뒤 “바로 실행” 체크리스트 (서버에서)

cd ~/firstcontainer1
python3 -m venv .venv
source .venv/bin/activate
# requirements.txt 있으면:
pip install -r requirements.txt
# 없으면 최소:
pip install flask gunicorn

# 임시 실행 테스트
gunicorn -w 2 -b 127.0.0.1:5000 app:app

브라우저에서 http://서버IP:5000 열어보고 보이면 OK.

Nginx 리버스 프록시(80 → 5000) — 아직 안 했다면

sudo apt install -y nginx
sudo tee /etc/nginx/sites-available/flask <<'EOF'
server {
    listen 80;
    server_name _;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}
EOF
sudo ln -sf /etc/nginx/sites-available/flask /etc/nginx/sites-enabled/flask
sudo nginx -t && sudo systemctl reload nginx

→ 이제 http://서버IP 접속.

부팅 자동실행(systemd) — 아직 안 했다면

sudo tee /etc/systemd/system/flask.service <<'EOF'
[Unit]
Description=Flask via Gunicorn
After=network.target

[Service]
User=<서버사용자>
WorkingDirectory=/home/<서버사용자>/firstcontainer1
Environment="PATH=/home/<서버사용자>/firstcontainer1/.venv/bin"
ExecStart=/home/<서버사용자>/firstcontainer1/.venv/bin/gunicorn -w 2 -b 127.0.0.1:5000 app:app
Restart=always

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now flask
sudo systemctl status flask --no-pager

<서버사용자>를 실제 계정명으로 바꿔줘.


.env/비밀키 주의

  • 퍼블릭 Git.env, 비밀키 올리지 마!

  • 이런 파일은 B 방식(scp/rsync/SFTP) 으로만 서버에 배포해서 ~/firstcontainer1/.env에 두고,

    Flask에서 python-dotenv로 읽거나 시스템d Environment=에 넣어.





0) 가상환경 들어가기 (공통)

cd ~/firstcontainer1
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt  # 없으면: pip install flask gunicorn


1) 파일이 APPLICATION.py이고, 안에 app = Flask(__name__) 가 있다면

(개발용, 바로 확인)

FLASK_APP=APPLICATION.py flask run --host=0.0.0.0 --port=5000

(운영용, Gunicorn)

gunicorn -w 2 -b 127.0.0.1:5000 APPLICATION:app

리눅스에서는 대소문자 구분합니다. 파일이 APPLICATION.py면 모듈 이름도 APPLICATION입니다.

(소문자로 application:app 쓰면 import 에러 납니다)


2) “앱 팩토리” 구조(예: def create_app(): return app)라면

(개발용)

FLASK_APP=APPLICATION.py FLASK_RUN_PORT=5000 flask run --host=0.0.0.0

(운영용)

gunicorn -w 2 -b 127.0.0.1:5000 "APPLICATION:create_app()"


3) wsgi.py가 따로 있고 그 안에 app이 있다면

gunicorn -w 2 -b 127.0.0.1:5000 wsgi:app


Nginx를 이미 붙여놨다면

위에서 하나를 띄운 뒤 브라우저에서:

  • 개발용(직접): http://서버IP:5000

  • 운영용(Nginx 프록시 통과): http://서버IP

    (프록시 설정을 내가 준 그대로 썼다면 80→5000으로 전달됩니다)


부팅 자동 실행(systemd)도 ExecStart만 맞추면 끝

(예: APPLICATION.py + app 전역일 때)

sudo tee /etc/systemd/system/flask.service <<'EOF'
[Unit]
Description=Flask via Gunicorn
After=network.target

[Service]
User=<서버사용자>
WorkingDirectory=/home/<서버사용자>/firstcontainer1
Environment="PATH=/home/<서버사용자>/firstcontainer1/.venv/bin"
ExecStart=/home/<서버사용자>/firstcontainer1/.venv/bin/gunicorn -w 2 -b 127.0.0.1:5000 APPLICATION:app
Restart=always

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable --now flask
sudo systemctl status flask --no-pager

앱 팩토리면 ExecStart= ... gunicorn ... "APPLICATION:create_app()" 로 바꿔주세요.


자주 나는 오류 체크

  • ModuleNotFoundError: 대소문자/경로 틀림 → APPLICATION:app 철자 확인

  • AttributeError: module ... has no attribute app: 팩토리 구조인지 확인 → create_app() 사용

  • Address already in use: 이미 떠 있는 프로세스가 5000 사용 중 → pkill -f gunicorn 후 재실행

  • 빈 페이지/502: journalctl -u flask -f 로 서비스 로그 확인









처음엔 집 와이파이/공유기 설정이 제일 헷갈립니다.

핵심은 “내 서버(우분투)까지 안정적 IP를 주고, 밖에서 안전하게 접속” 두 가지예요.

아래 3가지 루트 중 하나만 고르면 됩니다. (난 #2 또는 #3을 강력 추천)


0) 공통: 내부 IP를 고정(또는 예약)해두기

  • 공유기 관리자 페이지 → DHCP 예약(고정 할당)에서 서버 MAC 주소에 예: 192.168.0.50 부여

    (또는 우분투에서 고정 IP 설정)

# 인터페이스명 확인 (enp0s31f6 등)
ip a
# netplan 편집
sudo nano /etc/netplan/*.yaml
# 예시
network:
  version: 2
  ethernets:
    enp0s31f6:
      addresses: [192.168.0.50/24]
      routes: [{ to: default, via: 192.168.0.1 }]
      nameservers: { addresses: [1.1.1.1,8.8.8.8] }
sudo netplan apply

  • 우분투 방화벽:

sudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
# HTTPS 쓸거면: sudo ufw allow 443/tcp
sudo ufw enable


1) (가장 단순) 내부에서만 쓰기 — 포트포워딩 불필요

  • 집 안에서만 http://192.168.0.50 로 접속

  • 외부 접속 필요 없으면 여기서 끝!


2) (안전·편리) Cloudflare Tunnel — 포트포워딩 없이 외부 접속

공유기·통신사 설정 복잡함을 회피하는 최적의 방법. CGNAT/이중 NAT도 통과됨.

  1. 도메인이 Cloudflare에 있다면:

# 설치
curl -fsSL https://pkg.cloudflare.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloudflare.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install -y cloudflared

# 터널 생성/로그인
cloudflared tunnel login
cloudflared tunnel create myflask
cloudflared tunnel route dns myflask flask.my-domain.com

# 프록시(80→127.0.0.1:5000) 설정파일
sudo mkdir -p /etc/cloudflared
sudo tee /etc/cloudflared/config.yml <<'EOF'
tunnel: myflask
credentials-file: /home/ubuntu/.cloudflared/<생성된-credentials.json>
ingress:
  - hostname: flask.my-domain.com
    service: http://127.0.0.1:5000
  - service: http_status:404
EOF

# 서비스로 등록
sudo cloudflared service install
sudo systemctl enable --now cloudflared

  • 이러면 포트포워딩 없이 https://flask.내도메인 으로 바로 접속됩니다.

  • 22(SSH), 80/443 공유기 포트 여는 작업이 전혀 필요 없음.


3) (정석) 공유기 포트포워딩 — 80/443 외부로 열기

도메인+Let’s Encrypt 직접 쓰고 싶을 때.

  1. 공유기에서 포트포워딩:

  • 외부 80 → 내부 192.168.0.50:80

  • 외부 443 → 내부 192.168.0.50:443

    (SSH 22는 외부 개방 금지 권장. 원격관리 필요하면 WireGuard VPN 사용)

  1. 우분투에서 Nginx + 인증서:

sudo apt install -y nginx certbot python3-certbot-nginx
# Nginx 리버스프록시(80→5000) 이미 했다면 그대로 두고
sudo certbot --nginx -d flask.my-domain.com

  1. 테스트는 LTE/5G(모바일 데이터)로 접속해보기(집 와이파이=내부라 착시 생김).

⚠️ ISP가 80/443 차단/CGNAT이면 포워딩이 안 될 수 있어요. 그땐 #2 Cloudflare Tunnel 선택이 편합니다.


보너스: WireGuard VPN(원격에서 내부망처럼)

외부에서 관리/SSH만 필요하면 VPN이 제일 안전.

sudo apt install -y wireguard
# docker로 linuxserver/wireguard 써도 편함

  • 공유기에서 51820/UDP만 포워딩 → 외부에서 폰/노트북으로 VPN 접속 → 192.168.0.50 바로 접근.


자주 막히는 지점 체크리스트

  • DHCP와 고정IP 충돌: 공유기에서 IP 예약으로 해결(가장 쉬움).

  • 더블 NAT/CGNAT: #2 Cloudflare Tunnel로 우회.

  • NAT Loopback 미지원: 집 와이파이에선 도메인이 안 열릴 수 있음 → LTE로 테스트.

  • 방화벽: UFW/보안 솔루션에서 80/443, 51820(UDP) 허용 확인.

  • 도메인 DNS 전파: A/AAAA 레코드 수정 후 수 분~수십 분 지연 가능.


추천 선택 요약

  • 가장 쉬움/빠름: #2 Cloudflare Tunnel

  • 전통적 직접 서비스: #3 포트포워딩 + Certbot

  • 관리 전용(보안↑): WireGuard VPN + 내부만 공개

검색어 "Via"(이)가 content에 포함되었습니다.

배너 이미지
🇬🇧 LONDON WALK, WHERE THE ULTRA-RICH LIVE: WALKING THROUGH LONDON'S MOST AFFLUENT STREETS, 4K HDR

🇬🇧 LONDON WALK, WHERE THE ULTRA-RICH LIVE: WALKING THROUGH LONDON'S MOST AFFLUENT STREETS, 4K HDR

펼쳐보기

🇬🇧 런던 워킹투어: 나이츠브리지, 벨그라비아, 해러즈, 런던 스트리트 푸드 | 4K HDR

런던의 최고급 주거지들을 걷는 4K HDR 워킹투어에 함께하세요. 이곳은 초호화 저택, 우아한 타운하우스, 유서 깊은 부동산들이 즐비한 초부유층의 동네입니다. 🌟

슈퍼카가 줄지어 선 거리, 명품 부티크, 프라이빗 멤버스 클럽, 런던 중심부의 부와 우아함을 상징하는 랜드마크를 따라 걷습니다. 🚶‍♂️✨

소개된 지역:

메이페어 – 상류층의 궁극적 주소

벨그라비아 – 대형 타운하우스 & 대사관 밀집 지역

나이츠브리지 – 해러즈 & 럭셔리 브랜드의 본거지

켄싱턴 & 첼시 – 왕실의 품격과 고급 주거지

몰입감 넘치는 4K HDR 촬영 – 마치 현장에서 함께 걷는 듯한 생생한 경험을 제공합니다!

🔔 좋아요, 댓글, 구독으로 더 많은 런던 워킹투어 영상을 만나보세요!

#LondonWalk #LuxuryLondon #4KWalk #HDR #Mayfair #Belgravia #Knightsbridge #Kensington #RichestAreas #UltraRich

검색어 "Via"(이)가 content에 포함되었습니다.

🇬🇧 LONDON WALK, THE ULTRA-RICH AREA IN LONDON: WALKING THROUGH LONDON'S MOST AFFLUENT STREETS, 4K

🇬🇧 LONDON WALK, THE ULTRA-RICH AREA IN LONDON: WALKING THROUGH LONDON'S MOST AFFLUENT STREETS, 4K

펼쳐보기

🇬🇧 런던 워킹투어: 벨그라비아, 메이페어 – 런던의 부유하고 고급스러운 지역들 | 4K HDR

화려함의 정점에 서 있는 런던의 두 대표적인 부촌, **메이페어(Mayfair)**와 **벨그라비아(Belgravia)**를 도보로 탐험해보세요. 우아한 조지안 타운하우스, 럭셔리 부티크, 5성급 호텔, 그리고 사교계의 정점인 프라이빗 멤버스 클럽들이 이 지역을 구성하며, 오랫동안 억만장자, 귀족, 유명인사들의 안식처로 알려져 왔습니다.


🌟 메이페어(Mayfair)에서는:

  • 명품의 거리 **본드 스트리트(Bond Street)**와

  • 전통 맞춤 정장의 본고장 서빌 로우(Savile Row),

  • 세계적인 럭셔리 호텔 **클라리지스(Claridge’s)**를 지나며,

  • 숨겨진 중정, 역사 깊은 신사 클럽, 미쉐린 레스토랑을 발견할 수 있습니다.


🌟 벨그라비아(Belgravia)로 넘어가면:

  • 잘 정비된 하얀 스투코 외벽의 고급 저택들,

  • 우아한 이튼 스퀘어(Eaton Square) 같은 대형 광장,

  • 대사관으로 사용되는 19세기 맨션들이 눈에 띕니다.

이곳은 조용한 부의 상징으로, 눈에 띄지는 않지만 그 어떤 곳보다도 고급스러운 분위기를 풍깁니다.


🌟 이 투어는 다음과 같은 분들께 추천합니다:

  • 런던의 역사와 건축에 관심 있는 분

  • 세계에서 가장 비싼 지역의 부유한 삶의 단면을 엿보고 싶은 분

  • 도보 영상을 통해 런던을 간접적으로 체험하고자 하는 분


🌟 벨그라비아는 이런 곳입니다:

  • 세계 최고 부자들의 보금자리

  • 조용하고 사적인 고급 타운하우스 & 정원 광장

  • 억만장자, 귀족, 유명 배우, 외국 왕족 등 거주

  • 다수의 부동산이 외국 투자자, 외교관, 글로벌 기업가들의 소유

검색어 "Via"(이)가 content에 포함되었습니다.

부산시, 핀란드 대사 접견…스마트시티·북극항로 협력 논의

펼쳐보기

부산광역시가 지난 26일 부산광역시청 국제의전실에서 유리 예르비아호(Jyri Järviaho) 주한핀란드대사를 만나 부산과 핀란드 간 협력 확대 방안에 대해 논의했다.



이날 접견에는 김경덕 부산광역시 행정부시장과 유리 예르비아호 주한핀란드대사, 안띠 니에멜라(Antti Niemelä) 주한핀란드대사관 공관차석, 오세정 주부산 핀란드 명예영사 등이 참석했다.


이번 방문은 유리 예르비아호 대사가 ‘2026 드론쇼 코리아’ 개막식 참석을 계기로 부산을 찾으면서 이뤄졌다. 대사는 개막식과 오픈세미나 참석에 이어 부산 주요 산업 현장 시찰 일정도 진행했다.



부산광역시 관계자들과 주한핀란드대사가 만나 부산과 핀란드 간 협력 확대 방안에 대해 논의하고 있다. [사진=부산광역시]

부산광역시 관계자들과 주한핀란드대사가 만나 부산과 핀란드 간 협력 확대 방안에 대해 논의하고 있다. [사진=부산광역시]



김경덕 행정부시장은 “핀란드는 혁신과 기술 경쟁력을 기반으로 세계적인 스마트시티 선도국가로 자리매김한 나라”라며 “부산 역시 디지털 혁신과 친환경 정책을 적극 추진하고 있다”고 밝혔다.


특히 부산 강서구 에코델타시티는 대한민국 최초의 국가시범 스마트도시로 조성돼 지속 가능한 주거·첨단산업·환경이 공존하는 미래도시 모델을 구현하고 있다고 설명했다.


또 핀란드 헬싱키의 ‘칼라사타마 스마트시티 프로젝트’와 부산의 에코델타시티가 유사한 지향점을 갖고 있다며 두 스마트시티 간에 구체적이고 실질적 교류 가능성에 대한 기대를 나타냈다.


이에 유리 예르비아호 대사는 “핀란드 역시 혁신 기술과 지속가능성을 중심으로 도시 발전을 추진하고 있는 만큼 양측이 다양한 분야에서 협력을 확대해 나가길 기대한다”고 화답했다.


이어 양측은 부산-헬싱키 직항노선 개설과 관련한 교류 확대 필요성에 대해서도 의견을 나눴다. 김 부시장은 신종 코로나바이러스 감염증(코로나19)과 국제 정세 등으로 직항 개설이 지연된 데 대해 아쉬움을 표하며, 직항이 개설될 경우 관광·경제·문화 분야 교류가 크게 확대될 것으로 기대한다고 말했다.


국제 정세로 유럽 노선 운항 환경이 어려워진 상황과 관련해 양측은 직항노선 개설에 대해 중장기적 관점에서 협력 방안을 모색하기로 했다.


김 부시장은 최근 기후변화와 글로벌 물류 환경 변화로 북극항로의 전략적 중요성이 커지고 있다고 설명하며, 부산은 북극항로 활성화에 선제적으로 대응하고 있다고 밝혔다.


유리 예르비아호 대사는 “핀란드 내에서는 불안정한 국제 정세와 기후변화 등의 영향으로 북극항로에 대한 신중한 시각도 존재하지만 장기적인 관점에서 대비가 필요하다는 점에는 공감한다”고 밝혔다.


마지막으로 김 부시장은 “부산은 스마트도시, 디지털 혁신, 해양·물류, 친환경 에너지 산업을 중심으로 글로벌 허브도시로 도약하고 있다”라며 “핀란드와도 스마트시티, 인공지능, 해양기술, 관광·문화 등 다양한 분야에서 협력을 확대해 나가길 기대한다”고 말했다.

검색어 "Via"(이)가 content에 포함되었습니다.

핵심 키워드

이슈 54

전남도, 소상공인 온라인시장 성공 안착 돕는다 < 광주·전남 < 메트로 < 기사본문 - 뉴스워커

대부업계 “‘불법대부업’은 틀린 표현… 바로잡아야” < 금융 < 파이낸스 < 기사본문 - IT조선

기술사·기술장 취득 경력 2~4년 단축…국가기술자격 응시자격 다양화 | 아주경제

고단수 20기 영식, ♥17기 순자 뚝딱이는 모습에 “귀엽다” 미소…설렘 폭발 (나솔사계)

재채기 하듯 가스 방출…어린 별 주변 거대 고리 포착

포스텍, AI 시대 전력난 난제 풀 실마리 찾았다

내가 가려고 알아본, 해외 감성 가득한 서울, 부산, 경주의 이국적 숙소 | 지큐 코리아 (GQ Korea)

[위클리오늘] 동해시, 16년 만의 도민체전 엠블런·마스코트 싱징에 담은 의미 공개 < 강원 < 전국지사 < 기사본문 - 위클리오늘

봉준호 첫 장편 애니 도전, 앨리로 영역 확장 < 영화 < Entertainment < 기사본문 - ㅍㅍㅅㅅ PPSS

리틀록 9총사와 트럼프 불러낸 클린턴[손호철의 미국사 뒤집어보기](32)

[대구 장미비디오 사건③] 탈영병 이민형은 어떻게 살인범이 됐나

‘굿바이 잠실’…2026 KBO 올스타전 개최 장소 확정 [공식발표]

새 철도박물관 2030년 문 연다…당선작 '티 뮤지엄' 선정

섭듀드, 오는 4일 성수에서 국내 첫 팝업 오픈

부산문화재단, 공연예술 유통 전문인재 키운다…'BPAM 아카데미' < 사회 < 기사본문 - LG헬로비전

[르포] 멀티숍 벗어난 푸마, 성수에 ‘스니커 실험실’ 만든 이유 - 아시아투데이

[OTT 추천작 4월 1주] <사냥개들 시즌2> <휴민트> <엑스오, 키티 3> <아바...

데어 윌 비 블러드 | 결말포함 해석

대표작 2편 내리 개봉! 올 겨울, 양조위 팬들은 좋겠네 - 아시아투데이

故 데이비드 린치 감독 1주기 감독전 열린다

재활용 충전재가 거위털로 둔갑...? 노스페이스 공정위 신고

옵션만기·엔캐리 청산…"코인 더 떨어진다"

김해공항 국제선, 1000만 이용객엔 턱없이 부족한 인프라

철도노조 파업예고…23일부터 동해선 열차 70%만 운행

"나이키·스투시 못입겠네"...'영포티' 수난시대

“여보, 지금 일본여행 갈까?”…20만원→2만원 ‘뚝’, 관광지 호텔비 급감한 이유가

‘저속노화’ 정희원, 강제추행 혐의로 맞고소…사생활 논란 확산

[현장] 책 영화 빠진 자리, 도파민과 체험이 채웠다 | 비즈한국

이러니 음주운전 하지… 15%만 실형 받았다

김재우♥조유리, 남산뷰 77평 아파트 공개 “아내 위한 인테리어, 침대는 따로”(행가집)

온라인 기반 가구 시장 성장세…29CM 거래액 전년대비 40% 증가

자라홈, 롯데월드몰 플래그십 스토어 리뉴얼 오픈 < 유통소비자 < 생활경제 < 기사본문 - 이뉴스투데이

패션비즈 | 패션코드, 브랜드 스케일업 프로젝트 'KODE : S' 성료... 우승자는 몽세누

[강현철의 명화산책] ‘영혼의 눈동자’ 모딜리아니 ‘잔 에뷔테른’

패션비즈 | '6500억 호실적' 아이파크몰, 메가숍 · 패션 MD 흥행몰이 통했다

무너지는 K푸드 장벽, 초거대 美 식품 몰려온다 < 헤드라인톱 < 유통소비자 < 생활경제 < 기사본문 - 이뉴스투데이

“AI가 사람 대체한다” 아마존, 사무직 10% 감축 단행 - 조세일보

[김승중 더봄] 나만 그런 게 아니었어?···시키면 하기 싫어지는 마음, 우회 방법은 < 김승중의 슬기로운 인간관계 < 더봄 < 기사본문 - 여성경제신문

캄보디아 한인 납치 신고 330건…나경원 "이재명 정권, 왜 방치하나"

15년 전 귀향한 청년들, ‘다시마 섬’ 키웠다

전통시장서 두살배기 납치 시도한 60대 남성 체포 | 연합뉴스

中 과학자들, 노화 멈추는 줄기세포 개발…"뇌·혈관까지 회춘"

“온몸이 종잇장처럼 벗겨져”…‘이 약' 복용 4일 만에 피부 괴사까지, 무슨 일?

해운대 백사장에 '푸드트럭' 추진…벌써부터 '시끌벅적'

‘역전부부’ 아내, 유명 남편 때문에 결혼·출산 소식 숨겼다 “악플 시달리기도”(결혼지옥)

“약으로 버티려 했는데”…긴급수술 받았다는 조세호, 무슨일이

"아시아 주류 산업의 현재와 미래" 비넥스포 아시아 2025, 5월 27일부터 29일까지 싱가포르 마리나 베이 샌즈에서 개최! < 일반 < 기사 < Wine < 기사본문 - 소믈리에타임즈

알바 채팅방, 나 빼고 전부 한패… 신종 온라인 사기 극성

나솔 광수, 110kg→80kg 반전 과거 공개… “살 빼려 ‘이것’ 끊었다”

이청아, 최애 男 입주자는?…"편파적인가" 고민 (하트페어링)

미쳐야 했던 시대, 이름조차 불리지 않았던 그들 ‘초현실주의와 한국근...

“가난하면 왜 사랑도 망가질까? 자존감까지 파괴되는 이유”

200만원으로 시작해 2조 자산가가 된 비결은 무엇일까요?

키트라 그냥 라면 처럼 물 넣고 끓이기만 하면 되는건데