전체 글 386

리뷰 평점, 보정 평점을 연구 해보면 어떨까?

배경 - 악성 리뷰로 인한 사회 문제 악성 리뷰가 사회 문제가 되고 있어서 최근들어 관련 기사가 늘어나고 있음. 기사 예) 1. "볶음밥 곱빼기로 왜 안 줘", "음식 변기에 버렸다"…도 넘은 악성 리뷰 자영업자 '울상', 2021년 3월 5일, 아시아경제. 2. “못된 배달앱 리뷰에 끙끙” 음식점 사장님의 이중고, 2020년 12월 31일, 더스쿠프 문제 원인 배달의민족(배민)의 경우 최근 평점들을 단순 산술평균으로 평점을 계산. 모든 리뷰에 같은 가중치를 부여하고 있음. 신뢰할만한 리뷰어(평점과 리뷰를 단 사용자)와 악성 리뷰어 모두 같은 가중치를 부여함. 해결 방안 보정 평점 도입 리뷰어의 기존 리뷰 데이터를 바탕으로 가중치를 다르게 부여해서 평점을 계산함. 가중치 부여 방식은 리뷰 개수, 리뷰의 ..

자바 클래스Class 상속inheritance 예제

class Parent{ public Parent(){ System.out.println("Parent"); } int compute(int num){ return num+1; } } class Child extends Parent{ public Child(){ System.out.println("Child"); } int compute(int num){ return num+2; } } class Main { public static void main(String[] args) { Parent obj = new Child(); System.out.println(obj.compute(3)); } } 결과는? Parent Child 5 5다. Parent obj = new Child(); 이므로 Parent..

자바 추상 클래스 abstract Class 예제

정보처리기사에 실기 시험에 나왔던 자바 추상 클래스 예제를 약간 바꿨다. abstract class Vehicle{ String name; # 1번 public String getName(){ return "Vehicle name:" + name; } } class Car extends Vehicle{ public Car(String val){ name = val; } # 2번 public String getName(String val){ return "Car name:" + val; } } class Main { public static void main(String[] args) { Vehicle vehicle = new Car("IONIQ5"); System.out.println(vehicle.ge..

Q. 소프트웨어나 애플리케이션 버전은 어떻게 적어야 할까?

A. 보통 주Major.부Minor.수Patch로 적는다. Major는 크게 바뀔 때, Minor는 새로운 기능 추가, Patch는 버그 수정할 때 하나씩 올린다. 출처: Semantic Versioning유의적 버전 요약 버전을 주.부.수 숫자로 하고: 기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고, 기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部) 버전”을 올리고, 기존 버전과 호환되면서 버그를 수정한 것이라면 “수(修) 버전”을 올린다. 주.부.수 형식에 정식배포 전 버전이나 빌드 메타데이터를 위한 라벨을 덧붙이는 방법도 있다. 에 위 그림으로 잘 설명해 놓았다. 만화경의 경우 다음과 같이 한다고 한다. Build Environment의 경우는 만화경에서는 debu..

개발 Dev 2021.04.09

Q. 판다스Pandas에서 MySQL 접속해서 테이블 데이터 읽어오는 법은?

A. read_sql_table 메소드로 읽어올 수 있다. MySQL 데이터베이스를 sql 파일로 출력해서 읽어오는 방법을 시도했는데, 판다스에서는 제공해주지 않는 거 같다. MySQL 데이터베이스에서 특정 테이블을 csv로 출력해서 read_csv 메소드를 활용해서 읽어도 된다. 문제는 테이블 특정 칼럼 안에 ','나 '\t'이 있을 경우 csv 또는 tsv로 출력한 뒤 판다스에서 해당 파일을 읽어올 경우 오류가 발생한다. 그런 경우에는 데이터베이스에 접속해서 바로 판다스에서 읽어오는 것이 편하다. 판다스에서 바로 접속해서 읽어올 경우 데이터베이스 연결이 반드시 필요하다. 데이터베이스에 연결하는 라이브러리는 많은데, 판다스에서는 sqlalchemy만 지원한다. 따라서 sqlalchemy를 사용해서 연결..

MySQL에서 사용자를 추가하고 특정 데이터베이스만 권한 허용하기

MySQL에 우선 관리자 계정으로 접속한다. 꼭 CLI커맨드라인인터페이스 기반 mysql-client 같은 걸로 접속하지 않아도 된다. 맥 사용자라면 SequelPro 같은 프로그램으로 접속해도 된다. 데이터베이스 추가 test란 데이터베이스를 만든다면 아래처럼 명령어를 실행하면 된다. CREATE DATABASE test; 사용자 추가하기 사용자 아이디는 test 비밀번호는 Te067813!3812@라면 아래 두 명령어를 실행한다. 내부 접속만 허용할 경우에는 'test'@'localhost'로 모든 IP주소를 허용할 경우에는 'test'@'%'로 적는다. 아래 명령어를 실행한다. USE mysql; CREATE USER 'test'@'%' IDENTIFIED BY 'Te067813!3812@'; 특정..

Mac에서 mysql client 설치하고 MySQL 원격 접속하는 방법

Mac에서 mysql client 설치 Homebrew가 설치 되어 있지 않다면 아래 명령어를 터미널에서 실행한다. % /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 설치되어 있다면 brew install을 활용해서 mysql을 설치한다. % brew install mysql % brew install mysql-client 설치가 제대로 되어 있다면 $ mysql --version mysql --version을 실행해서 버전 정보를 확인한다. 원격 접속하기 접속주소 test.com 포트 3307 아이디 root 인 경우 mysql -h 접속주소 -P 포트번호 -u 유저명 -p m..

직접 코드를 치면서 배울 수 있는 코딩 교육 사이트, 코드카데미Codecademy

코드카데미란? 직접 코드를 치면서 배울 수 있는 코딩 교육 사이트다. 위 경우처럼 pwd(print working directory)란 명령어를 쳐야지만 다음으로 넘어갈 수 있다. 동영상을 보고 따라치는 것보다 책을 보고 따라치는 것보다 훨씬 효과적으로 공부할 수 있다. 컴퓨터 책을 사서 눈으로 읽는 경우가 대부분이고, 대부분 따라치지 않기 때문이다. 또 실제 개발 환경을 웹으로 그대로 구현해 놓아서 컴퓨터만 있으면 어디에서든지 똑같은 환경에서 학습할 수 있다. 학교 컴퓨터에서 공부를 하다가 이어서 집에서 그대로 다른 컴퓨터에서 이어서 할 수도 있는 것이다. 코드카데미에서 배울 수 있는 것들은? 프로그래밍 관련된 것들 거의 대부분을 배울 수 있다. 아래가 강좌 목록이다. 출처: codecademy Ful..

기타 Etcs 2021.04.02

Q. SQL문을 판다스Pandas로는 어떻게 할까 궁금하다면?

A. 관련 한국어 자료가 없는 거 같아서 위키독스를 활용해서 직접 작성했다. Ctrl+C & Ctrl+V 시리즈: 이 SQL문을 Pandas에서는 어떻게 할까? 대부분 개발자들은 SQL을 알고 있다. 관계형데이터베이스에서 데이터를 다루기 위해서는 필수로 알아야 하니까. SQL에서 할 수 있는 것들을 판다스에서 대부분할 수 있다. 아니 익숙해지면 더 쉽게 할 수 있다. 하지만 어떤 것이 어떻게 대응하는지는 찾기 어렵다. 그래서 정리해본 것이다. 계속 수정 작업 중이다. 아주 간단하고 쉬운 예제로 구성되어 있기 때문에 복사 붙여넣기로 직접 실행해보면 판다스에서 어떻게 응용하면 될지 쉽게 파악할 수 있다.

Q. AIHub 데이터 라이센스는 어떻게 될까?

A. 저작자인 한국지능정보사회진흥원 명시할 경우 자유로운 이용 및 변경이 가능하며 2차적 저작물에는 원 저작물에 적용된 것과 동일한 라이선스를 적용 AI데이터 다운로드 정책 AI Hub에서 제공하는 AI데이터를 이용함에 있어 다음과 같은 사항을 준수해야 함을 고지하오니 이에 동의하여 이용 할 수 있습니다. 1. 저작자인 한국지능정보사회진흥원 명시할 경우 자유로운 이용 및 변경이 가능하며 2차적 저작물에는 원 저작물에 적용된 것과 동일한 라이선스를 적용하여야 한다. 2. 제공받은 AI데이터를 대하여 승인을 얻은 연구자가 아닌 제 3자에게 열람하게 하거나 제공, 양도, 대여, 판매하지 아니한다. 3. AI데이터에 기반한 제품 제작 또는 기술연구에 활용한 논문, 제품 등 결과물에 데이터의 출처가 한국지능정보사..

인공지능 AI 2021.03.23

안드로이드 파이어베이스 구글 로그인시 Authentification Failed가 뜨는 이유는?

A. 파이어베이스 프로젝트 설정에 안드로이드 앱의 출시 SHA1 지문을 추가하지 않았기 때문이다. 지문을 추가하면 구글 로그인이 가능하다. "OAuth 클라이언트 ID의 경우 Firebase Console에서 Android 앱의 출시 SHA1 지문을 추가합니다." (참고: Firebase 출시 체크리스트) SHA-1 인증서 지문 찾는 방법은? 구글 플레이 콘솔 - 설정 - 앱 무결성을 누르면 화면에 지문 정보가 나온다. Firebase Console에서 Android 앱의 출시 SHA1 지문을 추가하는 방법은? 프로젝트 개요 옆에 설정 버튼을 눌러서 프로젝트 설정을 누른다. 그럼 내 앱 Android 앱 정보가 뜬다. 거기를 보면 SHA 인증서 지문 항목이 있다. 거기에 추가하면 된다. 앞에서 얻은 지문..

맥Mac에서 주피터 노트북Jupyter Notebook 500: Internal Server Error 나는 경우

에러 원인이 다양하다. 내가 겪은 상황 맥에 계정을 여러 개 만들어서 쓰고 있다. A란 계정에서 주피터 노트북을 설치했다. 해당 계정에서는 잘 작동했다. B계정에서도 주피터 노트북을 설치했다. 실행하면 500 에러가 떴다. 다시 삭제 뒤 설치해도 인터넷에 나온 방법들을 적용해봐도 계속 같은 에러가 났다. 에러가 난 이유 찾아보기 PermissionError: [Errno 13] Permission denied: '/usr/local/share/jupyter/nbconvert/templates/conf.json' 에러 로그를 안 보고 인터넷만 찾아서 하다가, 로그를 보니 퍼미션 에러였다. 권한 주기 터미널을 열고 sudo chmod -R 771 /usr/local/share/jupyter/nbconvert..

애플리케이션 업데이트 내용을 영어로 어떻게 적어야 할까?

유명 IT 기업들이 어떻게 적는지 살펴보자. 애플 - Finalcut Pro 버전 업데이트 설명 예 10.3 New Interface • Redesigned dark interface puts the focus on your video • Configure window layouts into custom workspaces for tasks like organizing and color grading • Fill a second display with the timeline or hide the timeline completely • Expand the Inspector to full-screen height ... Support for the Touch Bar on Macbook Pro • Tap to..

앱 Application 2021.03.20

Q. 파이어베이스firebase 데이터베이스를 사용하는 경우 안드로이드android 프로가드proguard 설정에 추가해야 하는 것은?

A. 데이터 모델을 난독화하지 말고 그대로 유지해줘야 한다. 파이어베이스firebase의 파이어스토어firestore나 리얼타임 데이터베이스realtime database 같은 데이터베이스를 사용하는 경우 프로가드 설정에서 모델을 그대로 유지해줘야 한다. 예를 들어 com.test.model 팩키지 안에 모델 파일들이 있다면 아래처럼 프로가드에 추가해줘야 한다. -keepattributes *Annotation* -keepattributes Signature -keepclassmembers class com.test.model.** { *; } 그래야 데이터를 읽어올 때 에러가 나지 않는다.

Q. 애드센스 일치하는 콘텐츠 광고를 티스토리 블로그에 어떻게 추가하나요?

A. 직접 HTML 코드를 추가해야 합니다. 최대한 자세히 설명을 적어 보겠습니다. 따라 해보시기 바랍니다. 애드센스 - 사이트 - 일치하는 콘텐츠 메뉴 누르기 만약 승인되었다면 아래처럼 목록에 블로그 주소가 뜹니다. 광고 - 개요 - 광고 단위 기준 - 일치하는 콘텐츠 선택 위 화면처럼 광고-개요-광고 단위 기준-일치하는 콘텐츠를 선택합니다. 운영 가능한 사이트에서 본인 블로그 주소 선택 - 광고 단위 이름 입력 운영 가능한 사이트는 본인 블로그 주소를 선택하세요. 제 경우 taptorestart.tistory.com를 선택했습니다. 광고 단위 이름은 수정 가능하니 원하시는대로 선택하시면 됩니다. 기본값 그대로 하고 저장 및 코드 생성을 누릅니다. 광고 코드 생성 완료 위 화면처럼 코드가 생성된 것을 ..

Q. 애드센스 일치하는 콘텐츠 광고는 언제쯤 사용 가능한가요?

A. 이 블로그 경우, 글을 162개 썼더니 사용 가능하게 되었습니다. 티스토리 기준 누적 방문자수는 8,723이었고요. 첫 글을 2020년 9월 28일에 적었으니, 5개월 넘게 걸렸네요. 블로그마다 달라서요. 제 친구 블로그는 글 120개, 누적 방문수 4200 정도 되자 승인되었습니다. 친구 블로그 글이 제 글보다 대체로 길었습니다. 그런 이유도 있겠죠. 공식 문서 승인관련 설명 (출처: 애드센스 고객센터 - 광고 단위 일치하는 콘텐츠 정보) 관련 콘텐츠 사용 자격 요건 일치하는 콘텐츠 기능은 일부 게시자만 사용할 수 있습니다. 일치하는 콘텐츠를 사용하려면 트래픽 규모와 고유한 페이지 수에 대한 최소 요건을 충족하는 사이트가 있어야 합니다. 이러한 요건을 정한 이유는 일치하는 콘텐츠를 통해 방문자에게..

Q. 애드센스 일치하는 콘텐츠 광고는 무엇인가요?

A. 블로그 방문자가 본 콘텐츠와 비슷한 주제의 다른 콘텐츠와 광고를 함께 보여주는 광고입니다. (참고: 애드센스 고객센터 - 광고단위 일치하는 콘텐츠 정보) 장점 ● 블로그 방문자가 블로그에 머무는 시간이 늘어납니다. ● 광고와 콘텐츠 구별이 직관적으로 되지 않기 때문에 광고 클릭률이 높아집니다. ● 광고 클릭률이 높아지기 때문에 수익이 확 늘어납니다. 구글의 실험결과로는 조회수는 9%, 사이트 이용 시간은 10% 늘어난다고 하네요. 제 경험 상 광고수익은 이용시간 10% 향상보다 훨씬 더 많이 늘어납니다. 일치하는 콘텐츠는 사이트 방문자에게 간단하게 콘텐츠를 홍보할 수 있는 무료 추천 서비스입니다. 이 도구를 이용하면 독자에게 관련성 높은 콘텐츠를 더 많이 제공하여 사이트의 페이지 조회수, 광고 노출..