워드프레스에서 좋아요 버튼 사용하기!!(무료)

정보를 얻기 위하여 구글링을 하면서 여러 블로그를 다니다보면…

포스트 맨 하단에

위와 같은 하트 버튼(또는 손가락 등)을 본 적이 있었다…

괜시리 저 하트가 탐나서.. 찾아보기 시작..

우측 상단 검색창에 like 라고 입력 후 엔터..

다양한 플러그인들이 있다..

여러 블로그에서도 소개해주는 플러그인들…

1. WP ULike(유료)

설치하고 좀 하려고 보니 유료더라;; 기능 제한이 너무 많다;;

내가 원하는건 통계, 이런게 아니라 순수한 하트수만 관리 되었으면 했다;;

그래서 삭제…(취미? 일기? 낙서장? 마냥 즐기는 곳에 돈을 투자할 필요가 있을까..?)

 

2. LikeBtn(유료)

좋아요/싫어요 누른 수를 통계도 내주고 좋아보였다..

하지만 역시나 유료.. 응 삭제…

 

3. Comments Like Dislike

이 플러그인은 자세히는 사용하지 않았으나.. 무료로 추정…

하지만 설치하자마자 지운 이유는 무료/유료를 떠나서..

댓글에 대한 좋아요/싫어요 기능을 제공한다..

내가 원하는건 포스팅에 대한 좋아요이기 때문에.. 패스

 

4. zilla-likes(무료)

드디어 찾았다.. 내가 원하는 기능… 거기다 무료…

통계나 포스팅별로 관리는 할 수 없지만… 그래도 좋다..

다운로드는 Github 에서 받을 수 있다.

또는 zilla-likes-master 여기에서 받을 수 있다.

 

다운로드 받은 압축 파일을 압축해제 한 후 생성된 zilla-likes-master 폴더를

워드프레스 설치 폴더 내에 /wp-content/plugins/

하단에 이동해준다.

그리고 관리자 페이지에서 새로고침하게 되면

좌측에 ZillaLikes 메뉴가 생기게되고.. 들어가보게 되면..

좋아요(하트) 버튼을 사용할 위치를 선택

Posts : 글
Pages : 페이지
Blog Index 블라블라 : 메인화면 or 검색결과

 

하단에는 좋아요가 0개, 1개, 그 이상일 때 보여지는 문구를 작성한 후

Save Changes 버튼을 클릭한다.

그리고 포스팅 한 글에 들어가보면…

하단에

위와 같은 하트를 만나 볼 수 있다.

 

※ 좋아요를 어디에 저장하고 있는지 궁금하여 찾아봤는데..

wp_postmeta 테이블에 저장되고 있었으며,

meta_key 값이 _zilla_likes 로 저장되고 있다.

나중에 시간되면.. 이 자료를 바탕으로.. 통계(?)를 구해볼까… 싶은데..

워드프레스 플러그인은 개발이 처음이라.. 잘 될지 모르겠다…

6 글이 마음에 드셨다면 하트 꾸욱~!!

안드로이드에서 자바스크립트 사용하기(보안이슈)

안드로이드에서만 작동하는 네이티브 앱의 경우는 알 수 없다.

다만 내가 웹을 위주로 개발을 하다보니…

안드로이드의 경우에도 모바일 앱이 아닌 모바일 웹인 경우가 많다.

즉, 화면만 모바일 기기로 보는 것일 뿐, 안에 내용은

일반적인 웹 서비스이다.

다만 모바일로 보기 위하여 WebView 라는 클래스의 도움을 받아

화면에 뿌려줄뿐…

여기서 문제가 발생한다.

웹 서비스의 경우 대부분 javascript 로 구성되어져있다.

안드로이드 환경에서 모바일 웹을 구현 할때에는

웹 서비스 URL 의 경우 h ttps(SSL)이 기본으로 되어 있어야만

javascript 를 사용할 수 있다.

※ 물론 예외는 있다.

SSL 이 적용 되지 않은 웹 서비스는 모바일 웹 어플리케이션을

개발 할 수 없다는 말인가..?

그것은 아니다.

@Javascritp 라는 어노테이션을 이용하여 다음과 같이 구현 할 수 있다.

MainActivity.java

//javascript 사용여부 true
mWebView.getSettings().setJavaScriptEnabled(true);
//웹서비스 <-> 안드로이드간 통신할 클래스 및 객체명 정의
mWebView.addJavascriptInterface(new WebBridge(), "android");

 

MainActivity.java

아래와 같이 기기 고유 ID 와 Push 메시지를 보낼 때 필요한 토큰 값을 return 받는

메소드를 정의하여 준다.

public class WebBridge{
    @JavascriptInterface
    public String getPhoneId(){
        return Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
    }

    @JavascriptInterface
    public String getToken(){
        return FirebaseInstanceId.getInstance().getToken();
    }
}

 

모바일 웹서비스에서 호출 방법은 간단하다.

아래와 같이 사용하면 위에서 정의한 phoneId 와 token 값을 확인 할 수 있다.

//모바일웹과 일반웹을 구분하기 위함
if(window.android){
	alert(window.android.getPhoneId());
	alert(window.android.getToken());
}

물론 위와 같이 사용하였을 경우 일반적인 웹 서비스에서는 window.android 객체를

찾을 수 없기 때문에 실행되지 않지만, 모바일 웹에서는 정상 작동한다.


위와 같이 작업을 마치고 APK를 생성한 다음 Google Play Console 에 등록하면..

이상한(?) 메일을 받아 볼 수 있다..

설명을 보면…

상세사유와 수정해야 할 APK 버전, 그리고 수정 마감일(?)이 날아온다.

어플리케이션을 등록 해본 적이 처음이라 주의 사항 같은건가. .싶어서 넘어갔었는데..

수정마감일이 지나면, 구글플레이에서 등록한 어플리케이션이 등록 취소 된다.

즉, 다운 로드 받을 수 없는 상황이 발생되기 때문에…

사용자가 많은 어플리케이션의 경우 큰 타격을 입지 않을까 싶다.

하여 처음에는 Webview에서 URL을 호출 할때 http -> https 로 변경한 후

어플리케이션을 등록해보았다… (테스트 할 당시 캐시 문제인지 정상작동..ㅠㅠ)

//이전버전
//mWebView.loadUrl("http://esoclan.com");
//임시변경
mWebView.loadUrl("https://esoclan.com");

절대.. 네버.. SSL 이 등록되어 있지 않다면, 위와 같은 실수는 할지 말 것..!

웹어플리케이션을 실행해보면, 흰 화면만 나오고.. 아무것도 진행이 안된다;;

물론 SSL 처리가 되어있다면 위와 같은 방식으로 처리해도 될 지도…?

하지만 SSL 처리가 되어 있었다면… 여기저기 search 할 필요도 없었겠지만..;;

최종적으로 찾은 결과는 아래와 같다.

//javascript 사용여부 true
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(final WebView view, String url) {
        if(url.indexOf("test.php") > -1) {
            String phoneId = Settings.Secure.getString(getApplicationContext().getContentResolver(), Settings.Secure.ANDROID_ID);
            String tokenId = FirebaseInstanceId.getInstance().getToken();
            mWebView.loadUrl("javascript: updateInfo('" + phoneId + "', '" + tokenId + "');");
        }
    }
});

javascript 사용여부는 true이고

WebView 클래스의 mWebView 객체에 내장되어 있는

setWebViewClient 클래스를 선언하여 이용한다.

onPageFinished 메소드를 오버라이드 한다.

특정 URL에 해당하면 javascript 명을 호출하여준다.
※ 해당 URL 에서 javascript 메소드가 선언되어 있거나,
선언되어있는 js를 include 해주어야 한다.

이때 javascript 의 인자는 필요한 값을 넘겨주면 된다.


위와 같이 하고 플레이 스토어에 다시 등록하면, 별다른 보안 이슈 메일이 오지 않고,

정상적으로 등록되어 서비스를 이어 나갈 수 있게 된다.

0 글이 마음에 드셨다면 하트 꾸욱~

진짜 Spring Boot 시작하기

개발툴을 설치했으면 이제 진짜…
Hello Spring Boot!! 를 찍어보기 위해 달려보자..

좌측의 Create new Spring Starter Project 를 눌러준 후 각 정보 입력 후 Next

 

사용할 라이브러리 선택 후 Finish!!

 

프로젝트에 에러가 발생한다.

프로젝트 우클릭 -> Maven -> Update Maven Project
Force Update of Snapshots/Releases 체크 후 OK 를 눌러준다.

오류가 사라지면

프로젝트 패키지 내에

xxxApplication.java 우클릭 -> Run As -> Java Application 클릭!!

Console창에 정상적으로 실행 된 것을 확인 할 수 있다..

웹 관련 설정을 1도 안한 상태라… (의존성 pom.xml 만 작성)

되는건가… 의구심이 들어 주소창에 입력..

http://localhost:8080

Spring security 를 적용하기 위하여 의존성을 추가해서

Spring security 메인 화면이 나오는 상태인데…

일단.. 서버는 잘 기동이 된 걸로 확인 완료..

View Resolver 나 서버 포트 설정은.. 더 찾아 봐야할듯…

Hello Spring Boot!! 를 찍은게 아니라.. 먼가 찝찝…하네-_-


찝찝하여… spring 공홈에서 searching…

https://spring.io/quickstart

내 비록 영포자(영어포기자..ㅠ)이지만… 이정도는.. 찾아서 할 수 있지 않을까…?

pom.xml 에서 spring security 관련 부분을 모두 주석 처리 후

xxxApplication.java  파일 수정

@SpringBootApplication
@RestController
public class EpApplication {
	public static void main(String[] args) {
		SpringApplication.run(EpApplication.class, args);
	}

	@GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}

서버 재시작!!?

서버가 없는데…

Spring Boot 는 뭔가 내부적으로 하는게 많은 것 같다..

설정이 복잡하지 않긴 한데…

 

상단의 위 아이콘 클릭으로 대체 가능!!

 

짜잔~?

Hello World! 가 출력되었다..ㅠㅠ

아? Hello Spring Boot! 를 띄워야하지..

 

완료…

 


총 평가..(?)

확실히… 편하긴 편하다…

처음부터 SpringBoot 를 쓴다면.. 오히려 더 좋을지도…?

다만.. SpringFramework 설정부터 해왔던 내 입장에서는..

편한건 사실…

다만… log 설정방법, 서버설정 등과 같은 세부적인 설정파일?

이 직관적으로 보이지 않기 때문에 다소 난해하다고 느껴지는 것 같다.

 

추가적으로 더 찾아서 설정해야 하는 항목으로는..

log level 이나.. 서버 포트.. 등등 관련 항목은 차근차근 찾아보는걸로…

그리고… return 항목에 jsp 를 받는 부분…

SpringFramework 기준으로 말하면..

ViewResolver 와 관련된 부분등이 있을 것 같다..

 

 

0 글이 마음에 드셨다면 하트 꾸욱~

Spring Boot 시작하기?(Spring Tool Suite 다운로드)

글을 쓰기에 앞서…

다른 블로그나 이런 부분을 참조해볼까 싶어 2~3군데 둘러봤는데…

너무 대충? 경험치를 믿고? 자세히 검색을 하지 않아서 그런지…

Spring Framework와 Spring Boot의 차이라던지…

이런점이 바뀌어서 편하다, 이런게 포함되어있다와 관련된 정보만

본상태로 작성을 하는 것이기 때문에 될지 안될지 확신이 서지 않는다..

그럼 시작 해볼까…

 

Spring Boot 를 하려면… 우선 개발툴?을 다운 받아야한다.

많은 개발자들이 사용하고 있는 이클립스(eclipse) 를 다운 받아도 되지만…

(eclipse 가  사용하지 않는 플러그인이 최소화 되어 있는 것 같아 선호 하는 편..)

 

우선 spring 공홈으로 이동…

https://spring.io/

상단에 Projects -> Spring Tools4 를 클릭한다.

페이지가 넘어가서 보면…

다양한 툴이 존재한다..

  1. Spring Tools 4 for Eclipse
  2. Spring Tools 4 for Visual Studio Code
  3. Spring Tools 4 for Theia

2번과 3번은… 사용해본적이 없기에… 익숙한 Eclipse 기반으로 된 툴을 다운로드

64비트 다운로드(Download)

 

다운로드 한 파일을 더블클릭하면… 압축을 해제한다.

압축을 해제 하면 같은 폴더(다운로드 받은 파일 경로)에 새로운 폴더가 생성된다.

sts-4.6.1.RELEASE(작성하는 시점 기준)

해당 폴더에 들어가보면…

위와 같은 리스트가 보이고… 녹색 박스의 SpringToolSuite4.exe 를 실행하면…

 

실행이 안된다…ㅡㅡ

java가 설치되어 있지만, 환경변수가 잡혀있지 않는 경우인데…

컴퓨터->속성 블라블라~로 설정을 잡아 줄 수 도 있지만

그 방식이 아닌 해당 툴을 기준으로 JAVA경로를 잡아준다.

SpringToolSuite4.ini 파일을 열어준다.

최상단에

-vm
C:/Program Files/Java/jdk1.8.0_111/bin/javaw.exe

를 추가해준다.

여기서 하단의 경로는 jdk8 (JAVA8)이 설치된 경로를 적어주어야 한다.

※ 스프링 부트 1.5.X 까지는 JDK 6과 7을 지원했다. 그러나 스프링 부트 2.0(스프링 프레임워크 5.0 적용) 부터 JDK 8 이상 사용이 강제되었다.

출처 – http://honeymon.io/tech/2019/06/17/spring-boot-2-start.html

 

그리고 저장 후 재실행..!!

 

정상적으로 실행되는 것을 확인 할 수 있다.

 

프로젝트를 시작(관련 파일, 소스)할 경로를 지정해주고 Launch 를 클릭해주면 된다.

 

익숙(?)한 이클릭스 베이스의 작업환경…!!

다음 포스팅은… 실제로.. 위에서 설치한 Spring Tool Suite 에

Spring Boot를 설치하여.. Hello Java!! 를 띄.. 아니.. Hello Spring Boot!! 인가?

2 글이 마음에 드셨다면 하트 꾸욱~!!