국토교통부 실거래가 매매가격 통계조회(조건추가)

조회조건)
1. 매매거래차이 DESC
2. 국토교통부 실거래가 매매가격 DESC
3. (최대매매-최소매매)/(최대매매)*100.0 - 같은아파트,같은평형 DESC
4. (최대매매-최소매매)/(최대매매)*100.0 - 같은아파트,같은평형 ASC

비고)화면이 늦게 나오므로, 인덱스생성

[2025-02-20 12:20:06]>SELECT CityCounty,LotNumber,TransactionAmount,Building,Buyer,Seller,ConstructionYear,RoadName,CancellationReasonDate,TransactionType,BrokerLocation,RegistrationDate FROM ANESTATEAPTALL WHERE MainNumber = '18' AND SubNumber = '10' AND ComplexName = '송도더샵하버뷰(D14)' AND AreaSquareMeters = '101.454' LIMIT 1
[2025-02-20 12:20:06]>SELECT DataClass,InfoMarketClass,TransactionTime,ComplexNo,CortarNo,RealEstateTypeCode,RealEstateTypeName,UseApproveYmd,CortarAddress,MinPriceByLetter,MaxPriceByLetter,MinLeasePriceByLetter,MaxLeasePriceByLetter,MinPrice,MaxPrice,MinLeasePrice,MaxLeasePrice FROM ESTATENAVERALLINFOATTACH WHERE CORTARADDRESS = '인천시 연수구 송도동' AND LNBRMNNM = '18' AND LNBRSLNO = '10' LIMIT 1;
[2025-02-20 12:20:06]>SELECT CityCounty,LotNumber,TransactionAmount,Building,Buyer,Seller,ConstructionYear,RoadName,CancellationReasonDate,TransactionType,BrokerLocation,RegistrationDate FROM ANESTATEAPTALL WHERE MainNumber = '21' AND SubNumber = '59' AND ComplexName = '인천송도힐스테이트3단지' AND AreaSquareMeters = '142.359' LIMIT 1
[2025-02-20 12:20:06]>SELECT DataClass,InfoMarketClass,TransactionTime,ComplexNo,CortarNo,RealEstateTypeCode,RealEstateTypeName,UseApproveYmd,CortarAddress,MinPriceByLetter,MaxPriceByLetter,MinLeasePriceByLetter,MaxLeasePriceByLetter,MinPrice,MaxPrice,MinLeasePrice,MaxLeasePrice FROM ESTATENAVERALLINFOATTACH WHERE CORTARADDRESS = '인천시 연수구 송도동' AND LNBRMNNM = '21' AND LNBRSLNO = '59' LIMIT 1;
Microsoft Windows [Version 10.0.19045.2965]
(c) Microsoft Corporation. All rights reserved.

>sqlite3 "naver_attach_estate_info_file.db"
SQLite version 3.48.0 2025-01-14 11:05:00
Enter ".help" for usage hints.
sqlite> .tables
ESTATENAVERALLINFOATTACH
sqlite> PRAGMA index_list(ESTATENAVERALLINFOATTACH);
sqlite> CREATE INDEX idx_cortar_lnbr ON ESTATENAVERALLINFOATTACH (CORTARADDRESS, LNBRMNNM, LNBRSLNO);
sqlite> PRAGMA index_list(ESTATENAVERALLINFOATTACH);
0|idx_cortar_lnbr|0|c|0
sqlite> PRAGMA index_info(idx_cortar_lnbr);
0|9|CORTARADDRESS
1|18|LNBRMNNM
2|19|LNBRSLNO

>sqlite3 "database_all_total.db"
SQLite version 3.48.0 2025-01-14 11:05:00
Enter ".help" for usage hints.
sqlite> PRAGMA index_list(ANESTATEAPTALL);
sqlite> CREATE INDEX idx_apt_search ON ANESTATEAPTALL (MainNumber, SubNumber, ComplexName, AreaSquareMeters);
sqlite> PRAGMA index_list(ANESTATEAPTALL);
0|idx_apt_search|0|c|0
sqlite> PRAGMA index_info(idx_apt_search);
0|4|MainNumber
1|5|SubNumber
2|6|ComplexName
sqlite> .exit

index.html
0.02MB

조회조건추가)
1. 최대매매금액-최소매매금액(같은 아파트, 같은 평수)  DESCENDING
2. 최대매매금액 DESCENDING

index.html
0.02MB

 

index.html
0.02MB

카카오 API를 이용해서 지번을 추가입력(지역별 랭킹 매매금액차이)

- 지역별랭킹 매매금액 차이를 구하는건 국토교통부 실거래가자료로 충분한다.
- 위의 아파트정보를 보려면, 결국 네이버부동산과 연결해야 한다.
- 결국 위의 2개의 공통분모를 찾아야하는데, 전체적으로 적용되는것이라, 일일이 찾아서 기록해줄수 없다.
- 자동화해야한다.
- 국토교통부 실거래가자료에는 지번없는주소와 지번이 있다.
- 네이버부동산 크롤링정보에는 지번없는주소와 아파트이름만 있다.
- 카카오API를 통해서 네이버부동산의 지번없는주소와 아파트이름으로 지번을 찾아서 추가해준다.
- 둘의 공통분모가 생겼다.
- 페이지에 표시할수 있고, 해당 아파트 클릭시에 네이버부동산으로 넘어간다.

1. 국토교통부 실거래가 사이트에서 데이타 다운로드 & SQLite 테이블에 지역별로 입력
2. 네이버 전체 APT 크롤링  & SQLite 테이블에 지역별로 입력
3. 네이버 전체 APT 크롤링테이블에서 카카오 API를 이용해서 지번을 추가입력
4. 지역별 랭킹 매매금액차이 SQLite 테이블 생성

빨간부분의 의미는
= (최고매매금액-최소매매금액)/(최고매매금액)*100.0

 

index.html
0.02MB

app.js(조회+ 실시간 Push )
index.html

위의 js를 두가지 케이스로 분리
1. 조회
2. 실시간 Push

server.js
0.00MB
api.js
0.00MB
index.html
0.02MB

 

Important Notes:

  • The two servers (server.js and api.js) communicate with the same Redis instance, so they should be run separately.
  • Both servers can be running simultaneously because they handle different aspects of the application: one for WebSocket communication and polling (real-time data push), and the other for HTTP-based API requests.

Potential Issues:

  • Redis Connection Timing: Ensure Redis is up and running before starting either server. If Redis is down or unreachable, both the WebSocket server and the Express API might fail to connect. To handle this, consider adding retries or proper error handling when trying to connect to Redis in both server.js and api.js.

1. Start Redis and WebSocket Server (server.js) First

  • Why: The WebSocket server is listening for connections, and it continuously polls Redis to fetch data. It needs to be up and running first so it can handle incoming WebSocket connections and start processing Redis data.
  • Action: Run node server.js first. This starts the WebSocket server and Redis polling.

2. Start the Express API Server (api.js) Second

  • Why: The Express API server handles HTTP requests, including setting the Redis public key, sending data to Redis, and fetching data from Redis. It needs to be running after the WebSocket server because it could be interacting with the Redis database that is already being accessed by the WebSocket server.
  • Action: After server.js is running, run node api.js. This starts the Express API server, which interacts with Redis.

font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;

<style>
#loading {
display: none; /* 기본적으로 숨김 */
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: rgba(0, 0, 0, 0.7);
color: white;
padding: 40px; /* 2배로 증가 */
border-radius: 20px; /* 2배로 증가 */
    /*
font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
font-family: 'Apple SD Gothic Neo', '돋움', Dotum, sans-serif;
font-family: 'Poppins', sans-serif;
    */
font-family: 'Nunito Sans', sans-serif;
/*
font-family: 'Montserrat', sans-serif;
font-family: 'IBM Plex Sans', sans-serif;
font-family: 'Nunito Sans', sans-serif;
*/
font-size: 40px; /* 2배로 증가 */
}
    </style>

 

 

index.html
0.02MB


WebSocket을 이용한 Now Loading ....Percentage(%)
WebSocket을 이용한 Now Loading ....Percentage(%)
WebSocket을 이용한 Now Loading ....Percentage(%)


1. Naver 아파트 기본 정보 크롤링
2. 국토교통부 실거래가 입력
3. 국토교통부 실거래가 JOIN With 지번

아래의 필드를 모두 출력

    // Fields from ESTATENAVERALLINFOATTACH table
    public string DataClass { get; set; } = "NONE";
    public string InfoMarketClass { get; set; } = "NONE";
    public string TransactionTime { get; set; } = "NONE";
    public string ComplexNo { get; set; } = "NONE";
    public string ComplexName { get; set; } = "NONE";
    public string CortarNo { get; set; } = "NONE";
    public string RealEstateTypeCode { get; set; } = "NONE";
    public string RealEstateTypeName { get; set; } = "NONE";
    public string UseApproveYmd { get; set; } = "NONE";
    public string CortarAddress { get; set; } = "NONE";
    public string MinPriceByLetter { get; set; } = "NONE";
    public string MaxPriceByLetter { get; set; } = "NONE";
    public string MinLeasePriceByLetter { get; set; } = "NONE";
    public string MaxLeasePriceByLetter { get; set; } = "NONE";
    public string MinPrice { get; set; } = "NONE";
    public string MaxPrice { get; set; } = "NONE";
    public string MinLeasePrice { get; set; } = "NONE";
    public string MaxLeasePrice { get; set; } = "NONE";

    // Fields from DESCENDINGESTATEAPT table
    public string DescendingNumber { get; set; } = "NONE";
    public string MainNumber { get; set; } = "NONE";
    public string SubNumber { get; set; } = "NONE";
    public string AreaSquareMeters { get; set; } = "NONE";
    public string MaxPurchasePrice { get; set; } = "NONE";
    public string MaxContractYearMonth { get; set; } = "NONE";
    public string MaxFloor { get; set; } = "NONE";
    public string MinPurchasePrice { get; set; } = "NONE";
    public string MinContractYearMonth { get; set; } = "NONE";
    public string MinFloor { get; set; } = "NONE";
    public string CapitalGain { get; set; } = "NONE";
    public string Region { get; set; } = "NONE";

    // Fields from ANESTATEAPTALL table
    public string CityCounty { get; set; } = "NONE";
    public string LotNumber { get; set; } = "NONE";
    public string Building { get; set; } = "NONE";
    public string Buyer { get; set; } = "NONE";
    public string Seller { get; set; } = "NONE";
    public string TransactionAmount { get; set; } = "NONE";
    public string ConstructionYear { get; set; } = "NONE";
    public string RoadName { get; set; } = "NONE";
    public string CancellationReasonDate { get; set; } = "NONE";
    public string TransactionType { get; set; } = "NONE";
    public string BrokerLocation { get; set; } = "NONE";
    public string RegistrationDate { get; set; } = "NONE";
    public string HousingType { get; set; } = "NONE";

function ConvertWon(amount) {
if (amount < 10000) return amount.toString();

const billion = Math.floor(amount / 10000);
const remainder = amount % 10000;

let result = `${billion}억`;
if (remainder > 0) {
result += ` ${remainder}만`;
}

return result;
}

app.js
0.01MB
index.html
0.02MB

REQUEST)
일상생활에서 가장 쉽게 AI 시스템을 도입해서 효과를 볼수 있는 분야는 ? 10개정도만 추려주세요
그리고 10가지의 공통적인 요소는 무엇일까요? 즉 AI 시스템의 핵심은?

RESPONSE)
결론적으로, 데이터 수집 → 분석 → 자동화 → 최적화 → 개인화 라는 흐름이 AI가 일상생활에서 효과를 발휘하는 핵심 요소라고 볼 수 있어요.


AI 시스템을 도입해서 가장 쉽게 효과를 볼 수 있는 일상생활 분야 10가지를 정리해봤어요.

1. 스마트 홈 자동화

  • AI 기반 음성 비서(예: 구글 어시스턴트, 시리, 빅스비) 활용
  • 스마트 스위치, 냉난방 조절, 조명 자동화

2. 맞춤형 건강 관리

  • AI 기반 건강 앱 (예: 식단 추천, 운동 분석, 수면 관리)
  • 스마트워치 & 헬스 트래커 활용 (예: 애플 워치, 핏빗)

3. 개인 금융 및 가계부 관리

  • AI 기반 자동 지출 분석 & 예산 추천 (예: 뱅크샐러드, 토스)
  • 투자 추천 서비스 (예: 로보어드바이저)

4. 자동 번역 & 언어 학습

  • 실시간 번역 (예: 파파고, 구글 번역)
  • AI 기반 언어 학습 (예: 듀오링고, AI 튜터)

5. 개인화된 콘텐츠 추천

  • 유튜브, 넷플릭스, 스포티파이 같은 AI 추천 시스템
  • 뉴스 요약 & 필터링 (예: 네이버 AI 뉴스 요약)

6. 업무 자동화 & 생산성 향상

  • AI 기반 일정 관리 (예: 구글 캘린더, 마이크로소프트 코파일럿)
  • 이메일 자동 분류 및 요약 (예: 지메일 AI)

7. 온라인 쇼핑 & 가격 비교

  • AI 가격 비교 및 최적 구매 시점 추천 (예: 다나와, 쿠팡 AI 추천)
  • 가상 피팅룸 (예: AI 기반 옷 추천 서비스)

8. 음식 주문 & 레시피 추천

  • AI 기반 음식 추천 및 레시피 생성 (예: ChatGPT 레시피, 요리 앱)
  • 냉장고 속 재료 기반 요리 추천

9. 자동차 및 내비게이션

  • AI 기반 경로 최적화 (예: 티맵, 카카오내비)
  • 자율주행 보조 시스템 (예: 테슬라 오토파일럿, 현대 스마트 크루즈 컨트롤)

10. AI 고객 서비스 챗봇

  • AI 챗봇 활용한 빠른 고객 상담 (예: 은행, 쇼핑몰, 통신사 고객센터)
  • AI 기반 항공권 & 숙박 추천
  •  

위 10가지 사례에서 공통적으로 발견할 수 있는 요소들을 정리해보면 다음과 같습니다.

1. 데이터 기반 최적화

  • AI는 사용자 데이터를 수집, 분석하여 최적의 선택을 추천함.
  • 예: 유튜브, 넷플릭스 추천, 투자 로보어드바이저, 건강 관리

2. 자동화 & 효율성 향상

  • 반복적인 작업을 AI가 대신 수행하여 시간과 노력을 절약함.
  • 예: 스마트 홈 자동화, 일정 관리, 이메일 요약

3. 개인화된 맞춤 서비스

  • AI가 사용자의 선호도와 습관을 학습하여 개인 맞춤형 서비스 제공.
  • 예: 음식 추천, 운동 분석, 쇼핑 맞춤 추천

4. 자연어 처리 (NLP) 활용

  • AI가 사람의 언어를 이해하고 대화형 인터페이스 제공.
  • 예: AI 챗봇, 자동 번역, 음성 비서

5. 실시간 분석 & 예측

  • 실시간 데이터를 분석하고 미래를 예측하여 빠른 의사결정 지원.
  • 예: 내비게이션 최적 경로 추천, 금융 AI 투자 분석

6. 사용자 경험(UX) 개선

  • 사용자의 불편함을 줄이고 직관적인 인터페이스 제공.
  • 예: 스마트홈 음성 제어, 고객 상담 챗봇, 가상 피팅룸

7. 연결성과 통합 (IoT & 클라우드 활용)

  • 다양한 기기 & 플랫폼과 연동되어 스마트한 환경 조성.
  • 예: 스마트워치 건강 모니터링, AI 기반 가전제품 자동 제어

8. 비용 절감 효과

  • AI 자동화로 인건비 및 운영비 절감.
  • 예: AI 고객센터, 자율주행 보조, 온라인 가격 비교

9. 패턴 인식 & 학습

  • AI가 사용자 행동 패턴을 분석하여 더 나은 결과 제공.
  • 예: AI 음악 추천, 건강 분석, 업무 자동화

10. 클라우드 & 모바일 중심

  • 대부분의 AI 서비스는 클라우드 기반으로 어디서나 접근 가능.
  • 예: 모바일 AI 비서, 온라인 번역, AI 금융 서비스

결론적으로, 데이터 수집 → 분석 → 자동화 → 최적화 → 개인화 라는 흐름이 AI가 일상생활에서 효과를 발휘하는 핵심 요소라고 볼 수 있어요.

+ Recent posts