전체 글 161

[node.js] passportLocalMongoose 사용 시 몽구스 컬렉션 생성 안됨 해결방법

node.js에서 mongoose만 사용하면 잘되는데, passportLocalMongoose를 추가해서 사용하면 컬렉션이 만들어 지지 않을 때 가 있다. 왜 안되는지 알아보고 예제를 통해 해결하자. 문제점 은 2개다. 1. 필수 필드 지정 문제 2. 사용자 등록 라우터에서 필드명과 클라이언트 데이터 일치 문제 1. 필수 필드 지정 문제 - 일반적인 mongoose 스키마 정의 일반적인 mongoose 필수 필드 지정 방법은 required: true 옵션을 사용하여 개발자가 지정한다. 컬렉션 생성 시 필수 필드를 사용하지 않으면 에러가 발생한다. const mongoose = require("mongoose"); let UserSchema = new mongoose.Schema({ userId: { t..

node.js 2024.01.24

[Web] 로컬 호스트 웹 화면 모바일로 테스트하기

요즘 웹 개발 트렌드는 pc, 모바일에서 동시에 작동 할 수 있는 반응형 웹페이지를 만드는 것이다. 이때 매번 모바일도 제대로 구현 됐나 하면서 매번 서버 배포 후 테스트 하는 것은 비효율 적이다. 따라서 반응형 웹페이지가 잘 구현 됐는지 확인 할 수 있는 방법을 2가지 소개한다. 목차 1. 내 휴대폰으로 확인하기 (강추) 2. 크롬에서 확인하기 1. 내 휴대폰으로 확인 하기 순서 대로 진행 하면 웹에서 개발 한 것을 모바일에서 즉시 확인 가능하다. 1. pc에서 로컬 호스트 서버를 작동 시킨다.(localhost:3000) (본인 포트 번호 그대로 사용 하면 됨) 2. pc의 무선 LAN 어댑터 Wi-FI -> IPv4 주소를 확인한다. (cmd 열기 -> ipconfig 입력해서 알아내면 됨) ex)..

Web 2024.01.19

[C++] Vector(벡터) 사용법

C++은 STL(Standard Template Library)이라는 강력한 라이브러리를 제공한다.데이터 저장, 관리 하는 컨테이너(Container) 클래스를 제공하는데 그 중 하나가 Vector다. 게시물의 예제는 아주 단순한 예제다. 1. vector include#include 포함 시켜주자. 2. 기본적인 기능vector.Pushback(); // 값을 뒤에다 추가한다.vector.at(n); // n 번째 값을 꺼낸다. 3. vector 구현#include#include //stl제공 라이브러리 추가using namespace std;struct stUserInfo{int nAge;float fHeight;float fKg;};void main(){ vector Vec; //구조체 사용 ..

C++ 2024.01.18

[MFC] 선택한 폴더 경로(Directory) 가져오기 예제

다이얼로그도 띄어주고 폴더 경로를 가져와 주는 예제다. 1. 구현 CString strSelectedFolder; ITEMIDLIST *pidlBrowse; TCHAR pszPathname[MAX_PATH]; BROWSEINFO BrInfo; BrInfo.hwndOwner = GetSafeHwnd(); BrInfo.pidlRoot = NULL; memset( &BrInfo, 0, sizeof(BrInfo) ); BrInfo.pszDisplayName = (LPWSTR)pszPathname; BrInfo.lpszTitle = L"폴더를 선택해 주십시오."; BrInfo.ulFlags = BIF_RETURNONLYFSDIRS; // 다이얼로그 띄우기 pidlBrowse = SHBrowseForFolder(&..

MFC 2024.01.18

[MFC] TCP/IP Socket 통신 예제

1. TCP/IP 예제 통신 순서 설명 1. Server Client 연결 2. Client -> Sever에게 Message 송신 3. Server에서 수신 후 받은 Message 그대로 Client 에게 리턴(송신) 4. Server 에서 온 Message Client 에서 수신. TCP/IP 의 구조, Client 와 Server 어떻게 통신 하는지를 위주로 코드 보면 좋음. 간단하고 주석 잘 되어있으니 한번 뜯어 보면 도움 됨. 맨 아래 .zip 첨부 2. 주의 사항. 솔루션 생성 -> 고급기능 -> Windows 소켓(W) 체크. 3. TCP/IP Socket 예제(구글 드라이브 링크) https://drive.google.com/file/d/1C9sc7dW2T6DUwctdaNbcwsyC-Hb-..

MFC 2024.01.18

[MFC] 리스트 컨트롤(List control) 예제

리스트 컨트롤의 기능을 다 구현해놔서 그대로 사용하면 된다. (InsertItem/ SetItem) 1. 실행 화면 아래 헤더 파일과 Cpp 파일을 그대로 복붙하면 아래와 같은 결과가 나온다. 2. 헤더 파일 //header----------------------------------------------------------------------------------------------- // MFCApplication3Dlg.h: 헤더 파일 // #pragma once // CMFCApplication3Dlg 대화 상자 class CMFCApplication3Dlg : public CDialogEx { // 생성입니다. public: CMFCApplication3Dlg(CWnd* pParent = ..

MFC 2024.01.18

[C++] FTP 파일 찾기 예제 (FtpFindFirstFile)

FTP에서 업로드 할 때 파일을 찾아야 하는 경우가 있다. 이때 FtpFindFirstFile 함수를 사용한다. 1. FtpFindFirstFile 함수 원형 HINTERNET FtpFindFirstFile( IN HINTERNET hFtpSession, IN LPCTSTR FileName OPTIONAL, IN LPWIN32_FIND_DATA FindData, IN DWORD Flags, IN DWORD Context); 함수 인수 설명 hFtpSession 설정된 FTP 세션. FileName 검색할 디렉토리 경로 이름 또는 파일 이름. NULL이 지정되면 서버의 현재 디렉토리의 첫 번째 파일이이 함수에서 검색됩니다. FindData 검색 결과. Flags InternetOpenUrl 참조. Cont..

C++ 2024.01.18

[C++] FTP Timeout 설정 예제 (InternetSetOption)

InternetSetOption 함수를 사용하면 FTP 연결, Data 송신, Data 수신 할 때 등 TimeOut 설정이 가능함. TimeOut이 가끔 안되는 버그가 있다고 함. 그럴 때는 Thread 하나 만들어서 InternetSetOption 함수 감시해주면 됨. 나는 문제없이 사용함. ​ 1. 함수 원형 BOOL InternetSetOption( IN HINTERNET hInternet OPTIONAL, //Ftp Internet 핸들(Internet 핸들) IN DWORD Option, //Time Out Define 를 default로 작성(Time Out 종류) IN LPVOID Buf, //Time Out Buffer IN DWORD BufSize); //Time Out Buffer S..

C++ 2024.01.18

[C++] FTP 예제(SImple Ftp Class)

C++로 Ftp 구현 시 사용하면 되는 Class다. Ftp 기능이 거의 대부분 구현되어 있다. 기능은 업로드, 다운로드, 이어받기 등 다양하다. 다운로드 아래는 SimpleFtp.h의 Class에 정의되어 있는 함수 원형이다. //로그인 BOOL Login(CString strIP, CString strID=_T("anonymous"), CString strPasswd=_T(""), UINT nPort = INTERNET_DEFAULT_FTP_PORT, HWND hCallWnd = NULL, BOOL bUtf8 = TRUE, BOOL bPassive = FALSE); //로그아웃 void LogOut(); //FTP서버에 연결되어있으면 TRUE, 아니면 FALSE BOOL IsConnected(); /..

C++ 2024.01.18