반응형

중국 앱들 때문에 애플에서 특단의 조치를 취한지 어언 석달이 지났나?
클립보드에 내용이 있는 상태에서 금융앱들을 실행하면 붙여넣기를 허용하겠느냐라는 짜증나는 안내창이 반겨준다.
이번 패치에 해결됐나 싶었는데 여전히 해당 증상이 나타나길래 애플넘들 정신 못차리고 있구나 싶었는데 설정에서 해결할 수 있는 방법이 있었다.

먼저 환경설정 톱니바퀴 아이콘을 터치해서 설정으로 들어간 후
짜증나는 붙여넣기 허용 안내가 뜨는 앱들을 일일이 들어가서
(뭔 카카오 시리즈가 이리 많냐 ㅡㅡ)

참고로 나는 설정 > 토스를 선택했다.
토스 설정으로 들어가면 다른 앱에서 붙여넣기가 기본 묻기 상태로 되어 있다.

이를 선택하면 묻기, 거부, 허용이 있는데 허용을 선택해준다.

이제 앱에서 다시는 허용하겠느냐라는 안내창을 볼 일이 없다.
중국은 참 여러모로 대단하다.
우한 폐렴 (코로나 19)도 그렇고 앱에서 개인정보 탈취하는 것도 그렇고
보이스피싱에 
도대체 인류에 도움이 되는 일이 있기나 하는 것인지

반응형
Posted by Hippalus
,

반응형

보통 DB Connection string은 appsettings.Development.json에 보관하여 이용한다.
 
"ConnectionStrings": {
    "DefaultConnection": "Data Source=myserverip;Initial Catalog=mydb;User ID=myid;Password=mypwd;"
  }

dbContext 방식으로 된 예제들은 많지만 ADO.NET으로 가져오려면 막막해진다.
물론 MS 문서에 버젓이 있지만 늘 그렇듯 생경한 느낌을 지울 수 없고 매번 바꿔대어 찾기가 힘들다.
https://learn.microsoft.com/ko-kr/aspnet/core/fundamentals/configuration/?view=aspnetcore-7.0

방식은 이러하다.
기본 프로젝트를 기준으로 
private readonly IConfiguration _config; 를 선언해주고
IConfiguration config를 넘겨준 후 
_config.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value 로 불러와서 사용하면 그만이다.


namespace Sample.Controllers
{
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;
        private readonly IConfiguration _config;

        public HomeController(ILogger<HomeController> logger, IConfiguration config)
        {
            _logger = logger;
            _config = config;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult TicketList()
        {
            var dt = new DataTable();

            string strConnection = _config.GetSection("ConnectionStrings").GetSection("DefaultConnection").Value;

            using (var conn = new SqlConnection(strConnection))
            {
                conn.Open();

                using (var cmd = new SqlCommand())
                {
                    int nIDX = 100;

                    cmd.Connection = conn;
                    cmd.CommandText = @"
                                        SELECT
                                            *
                                        FROM
                                            IN_TABLENAME
                                        WHERE
                                            IDX > @idx
                                        ORDER BY
                                            IDX DESC
                                        ";

                    cmd.Parameters.AddWithValue("@idx", nIDX);

                    var reader = cmd.ExecuteReader();

                    dt.Load(reader);
                }
            }

            ViewData["dt"] = dt;

            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

반응형
Posted by Hippalus
,

반응형

DB First방식으로 프로젝트를 진행해보고자 이리저리 알아보고 시도한 결과를 남기고자 한다.

먼저 셋팅을 하려면 nuget package manage에서 필요한 패키지를 설치하여야 한다.
예전 오래된 Visual Studio와 달리 2022에선 종속성에서 마우스 우측을 눌러 NuGet 패키지 관리메뉴를 호출해야 한다.

1. Microsoft.EntityFrameworkCore.Tools를 찾아 설치


2. DB엔진에 따라 추가로 설치해야 할 provider 다른데 아래처럼 각각 사용하고 있는 DB엔진에 맞는 provider를 추가로 설치

MSSQL : Microsoft.EntityFrameworkCore.SqlServer
MySQL : MySql.Data.EntityFrameworkCore
Oracle : Oracle.EntityFrameworkCore
SQLite : Microsoft.EntityFrameworkCore.Sqlite

이처럼 패키지를 설치하고 appsettings.json파일로 가서 DB Connection정보를 입력해 둔다.

  "CoreCodeFirst": {    "DBType":
    "mssql",
    "ConnectionString": "Server=dbip;DataBase=dbname;UId=myid;pwd=mypwd"
},

저장해주고
이제 DB First의 거진 마지막 단계인 모델(Model)과 컨텍스트 생성하기 단계.
패키지관리자콘솔 이란걸 실행해야 하는데 어디있는지 모르겠다 -_-
검색해보니 도구 > NuGet 패키지 관리자 > 패키지 관리자 콘솔로 불러올 수 있었다.

불러온 패키지 관리자 콘솔에서 아래처럼 입력 후 엔터를 치면 
Scaffold-DbContext 'Data Source=dbip;Initial Catalog=dbname;UId=myid;pwd=mypwd' Microsoft.EntityFrameworkCore.SqlServer

Build started...

Build succeeded.

가 나오더니
이런 에러가 튀어나온다.

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 신뢰되지 않은 기관에서 인증서 체인을 발급했습니다.)

아래처럼 명령어를 수정하여 실행하면
Scaffold-DbContext 'Data Source=dbip;Initial Catalog=dbname;TrustServerCertificate=True;UId=myid;pwd=mypwd' Microsoft.EntityFrameworkCore.SqlServer

Build started...

Build succeeded.

이후 오류 없이 실행되며 프로젝트에 컨텍스트가 생성됨을 발견할 수 있다.

반응형
Posted by Hippalus
,

반응형

java di를 위한 spring 플러그인 설치를 하기위해 이클립스 메뉴의 help > eclips marketplace를 눌러 search에 spring을 입력해본다.
그리고 boot 플러그인이 아닌 Spring Tools 3 Add-On for Spring Tools 4 3.9.22.RELEASE를 설치해본다.

초기 설정대로 전체 체크된 상태로 Confirm을 누르면 설치가 되다가 오류가 발생한다.

대충 이런 오류인데
install Cannot complete the install because one or more required items could not be found.
구글에 이렇게 검색해보니 eclips market place spiring install Cannot complete the install because one or more required items could not be found.
이런 결과 페이지를 발견할 수 있었다.
https://download.eclipse.org/releases/2021-09

 

Eclipse software repository | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 360 open source projects, including runtimes, tools and frameworks.

download.eclipse.org

대략 내용은 Window의 Preferences의 Install/update로 가서 사이트를 추가하란 내용

Probably this feature is expecting you to be installing in the "Eclipse IDE for Enterprise Java and Web Developers" where this "missing" feature is already installed. In your Window -> Preferences -> Install/Update -> Available Software Sites is https://download.eclipse.org/releases/2021-09 in the list and checked (enabled)? In the worst case, use Help -> Install New Software..., choose/enter https://download.eclipse.org/releases/2021-09, look for "Eclipse XML Editors and Tools" and install that first.

시키는대로 하고 다시 처음부터 Spring 입력하고 인스톨하고 하니 설치는 되었는데.
여전히  Select wizard메뉴에서 Spring이 나오지 않았다.
뭐지 싶어서 그냥 멍때리니 이윽고 Trust란 아래 창이 뜨길래 일단 그냥 Trust ok때리니 

eclips를 재실행한다란 alert이 뜨고 재실행 해보고

wizard메뉴로가니 그제서야 Spring이 나오더란

MS나 Apple은 통합환경에서 덜그덕 거림이 업는데 Java, Android 진영은 이런게 사람을 괴롭힌다.

반응형
Posted by Hippalus
,

반응형

흔히 부르는 햄버거 메뉴를 눌렀을 때 이벤트 감지를 알려주는 강좌를 보고 따라 했음에도 햄버거 메뉴가 동작 자체를 안하는 문제를 발견했다.
        leading: IconButton(
          icon: Icon(Icons.menu),
          onPressed: () {
            print("Menu Call!!!!");
          },
        ),
강좌에서 동작했던 코드인데
아래처럼 해야만 동작했다.
        leading: Builder(
          builder: (context) => IconButton(
            icon: new Icon(Icons.settings),
            onPressed: () => Scaffold.of(context).openDrawer(),
          ),
        ),

그새 구글이 구글했나보다.
작작 좀 바꿔라.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  //const MyApp({super.key});
  final appTitle = 'Drawer Demo';
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: appTitle,
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.red,
      ),
      home: Home(),
    );
  }
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        leading: Builder(
          builder: (context) => IconButton(
            icon: new Icon(Icons.settings),
            onPressed: () => Scaffold.of(context).openDrawer(),
          ),
        ),
        title: Text('Drawer'),
        elevation: 0.0,
        centerTitle: true,
        actions: [
          IconButton(
            icon: const Icon(Icons.shopping_cart),
            onPressed: () {
              print("AA2222");
            },
          ),
          IconButton(
            icon: const Icon(Icons.search),
            onPressed: () {},
          ),
        ],
      ),
      body: Center(child: Text('My Page!')),
      drawer: Drawer(
        child: ListView(
          padding: EdgeInsets.zero,
          children: [
            // DrawerHeader(
            //   child: Text('Drawer Header'),
            //   decoration: BoxDecoration(
            //     color: Colors.blue,
            //   ),
            // ),
            UserAccountsDrawerHeader(
              currentAccountPicture: CircleAvatar(
                backgroundImage: AssetImage('assets/0001.gif'),
              ),
              otherAccountsPictures: [
                CircleAvatar(
                  backgroundImage: AssetImage('assets/0002.png'),
                )
              ],
              accountEmail: Text('dev.yakkuza@gmail.com'),
              accountName: Text('Dev Yakuza'),
              onDetailsPressed: () {
                print('press details');
              },
              decoration: BoxDecoration(
                  color: Colors.blue[300],
                  borderRadius: BorderRadius.only(
                    bottomLeft: Radius.circular(40),
                    bottomRight: Radius.circular(40),
                  )),
            ),
            ListTile(
              title: Text('Item 1'),
              onTap: () {
                Navigator.pop(context);
              },
            ),
            ListTile(
              title: Text('Item 2'),
              onTap: () {
                Navigator.pop(context);
              },
            ),
          ],
        ),
      ),
    );
  }
}

반응형
Posted by Hippalus
,

반응형

visual studio code로 flutter를 개발하기 위해 extension을 설치하고 F1을 눌러 New project를 누르면 

이딴게 호출되는 사람이 있을 수 있다.  그게 나다 -_-
이상한건 난 분명히 환경변수를 설정해줬단 말이다.
그래도 뜨니 어쩔 수 없다. 또 하는 수 밖에

flutter site에서 파일을 다운받은 후 루트 > Users > hippalus (참고로 이 폴더는 내 유저명임) > Development (참고로 새로 만든 폴더임) > flutter를 위치시켜 뒀다.

터미널을 열어(터미널이 어디있는지 모른다면 응용프로그램 폴더의 유틸리티 폴더를 참조할것)

vim editor를 열기 위해 

vi ./~zshrc 입력 후 엔터

vim editor에 대해 더 알고 싶다면 이 블로그 글 참조 바람 잘 설명되어 있음
머여 내 포스트랑 겹치는 내용이네? ㅋ
https://d-dual.tistory.com/8

 

[ Mac OS / Terminal ] zsh 셸에서 Vim을 이용하여 환경 변수 설정하는 방법.

📝 VIM 소개 - vim.org Vim은 모든 종류의 텍스트를 만들고 변경할 수 있도록 구성 가능한 텍스트 편집기입니다. 대부분의 UNIX 시스템 및 Apple OS X에 "vi"로 포함되어 있습니다. 라고 vim 공식 페이지에

d-dual.tistory.com

vim editor에서 i를 눌러 INSERT모드로 진입 후 각자 위치시킨 경로를 입력 

export PATH="$PATH:/Users/hippalus/Development/flutter/bin"

다 입력했다면 esc키를 눌른 후 :wq 엔터치면 vi editor에서 빠져나옴

터미널로 다시 넘어왔다면 업데이트 한 내용을 적용하기 위해 source 명령어 사용

source .bashrc 실행하면 끝

반응형
Posted by Hippalus
,

반응형

Flutter을 설치하고 제대로 설치 됐나 확인하기 위해선 cmd.exe를 실행하여 flutter doctor를 입력해봐야 한다.

보통 Android license 관련 문제만 나타나는것 같은데 난 cmdline-tools component가 없다고 나온다.
하... 이 지저분한 구글환경
MS와 애플은 깔끔한데 JAVA, 구글 오픈소스 진영들은 정말이지 -_-

검색해보니 설정에 가서 SDK Tool을 깔아주면 된다는데
Android Studio를 써보지 않은 나는 Appearance메뉴가 어디있는지도 못찾았었다.
File > Settings(단축키 ctrl+alt+s)로 가보면 

Appearance & Behavior가 있고 그 아래에 System Settings가 있고 또 그 아래에 Android SDK가 있고
그 우측 상세화면에 SDK Platforms, SDK Tools, SDK Update Sites 중 SDK Tools를 눌러 아래로 스크롤 해 보면 아까 문제로 나온 Android SDK Command-line Tools가 언체크 된 상태로 보인다.
이걸 체크 하고 Apply 해주면

이렇게 쭉 인스톨 되는걸 확인할 수 있다.
뭘 이렇게 꽁꽁 숨겨둔다냐 ㅡㅡ

그리고 다시 cmd 상태에서 flutter doctor를 실행해보니 아 이건 또 뭐지 http host???
설마 방화벽에서 cocoapods를 차단했을리는 없는데 ㅡㅡ

일단 먼저 라이센스 문제부터 해결하기 위해 flutter doctor --android-licenses를 입력하고 계속 Y, Y, Y를 누른 후 다시 flutter doctor를 실행해보니 문제 없이 해결되었다.

No issues found!

반응형
Posted by Hippalus
,

반응형

SELECT
   OBJECT_NAME(object_id),  OBJECT_DEFINITION(object_id)
FROM 
   sys.procedures
WHERE 
   OBJECT_DEFINITION(object_id) LIKE '%내용%'

반응형
Posted by Hippalus
,

반응형

해피크루 추천인 코드가 필요한 분들을 위해 일단 추천인코드부터 공유합니다.

HC14130083

해당 코드를 복사하여 회원가입시 입력하면 회원 가입 후 7일 이내 첫 배달시 1만원을 받을 수 있습니다.

추천인코드 입력 : 10,000원
7일이내 첫 배달 : 10,000원
배달비 : 3,000원
이렇게 하면 총 배달 1회로 23,000원을 벌 수 있습니다.

배민커넥트, 우딜(우친-배달하기) 같은 소소하게 배달로 용돈을 벌 수 있는 플랫폼들이 있습니다.
다른 배달플랫폼 노동은 다 해봤는데 요즘 비교적 후발주자인 해피크루가 있어 가입해 보았습니다.
회원가입은 플레이스토어나 앱스토어에서 해피크루 로 검색해서 다운 받은 후 실명인증 하면 아래처럼 자신의 회원아이디 (추천인 코드)가 발급됩니다.

해피크루 회원가입

회원가입을 하였다면 PC에서 https://happycrew.wisehrd.com/ 로 이동하여 안전교육을 시청하여야 합니다.
해피크루 가입시 이름 및 연락처와 산업안전교육 수료 정보는 반드시 일치하여야 합니다.
소득세 신고 목적으로 주민등록번호를 최초 로그인 1회 필수로 수집하며, 주민등록번호가 없을 경우 배달활동 및 수수료 지급이 제한됩니다.
안전교육은 2시간이나 되므로 그냥 틀어놓으면 됩니다. 이짓을 참... ㅡㅡ

교육을 모두 마쳤다면 이제 본격적으로 해피 크루 배달을 해봅니다.
앱을 실행하면 교육을 이수하였는지 묻습니다.
이수 확인을 누르고 운행을 시작하면 인근 파리바게트나 베스킨라빈스31 등의 해피 오더가 발생하면 배달을 할 수 있습니다.
(배스킨라빈스 인지 베스킨라빈스인지 빠리바게트 인지 파리바게트인지 아니면 파리 바게뜨 인지 엄청 헷갈림)

해피크루 로그인

오더는 배민처럼 빈도수가 많진 않습니다.
또한 도보 배달만 가능하기 때문에 1~2km 이내의 가까운 거리만 뜨는데 이게 직선 거리로 측정하기 때문에 체감하는 거리는 훨씬 멀고 금액 역시 가벼운 상품 조건이기에 3,000원 고정이므로 딱 이거다 싶은 배달 용돈 벌이는 못 됩니다.
느낌상 GS25 배달업인 우딜과 거의 비슷합니다.
하면 몸만 축나는 그런 느낌적인 느낌
우딜의 경우 금요일 회사 점심시간에 한 건, 토요일에 동네 번화가에서 좀 잡아보겠다고 켜놓고 산책해본 결과 화장품 가게 2,000원짜리, 좀 길어야 3,000원짜리 다른건 도저히 걸어서 못 갈 ㄱ자 형태의 배달들 ㅡㅡ
해피크루도 비슷하지 싶습니다.

따라서 돈이 목적이 아닌 정말 산책하면서 소소하게 재미 느껴볼 분들에게 추천할만한 플랫폼입니다.
2022년 10월 현재 서울시내 해피크루로 배달을 할 수 있는 업체 정보는 공지사항을 통해 알 수 있스니다.
강남구는 빽빽하게 많은데 강북구나 동대문구 이런 강북 지역은 상대적으로 많이 적습니다.
https://www.happycrew.co.kr/notice/noticeDetail.do?noticeId=39&currentPage=1

반응형
Posted by Hippalus
,

반응형

<INPUT TYPE="CHECKBOX" NAME="CHK" CLASS="CHECKDATA" VALUE="1">체크1
<INPUT TYPE="CHECKBOX" NAME="CHK" CLASS="CHECKDATA" VALUE="2">체크2
<INPUT TYPE="CHECKBOX" NAME="CHK" CLASS="CHECKDATA" VALUE="3">체크3

이렇게 체크박스가 동일한 클래스명으로 여러개 존재하고 라디오 버튼처럼 하나의 체크박스만 체크 가능하게 할 경우
체크박스의 체인지 이벤트에 아래와 같이 코딩해주면 끝남

           
$(".CHECKDATA").on('change', function() {
                $(".CHECKDATA").not(this).prop('checked', false);  
            });

반응형
Posted by Hippalus
,