안녕하세요.

오랜만에 블로그 글을 작성합니다.

학부생, 취준생 시절 공부한 것들을 정리하면서 블로그 글을 작성했었는데

이제 직장인이 되어 바쁘단 핑계로 잘 적지않았네요..


전 이제 거의 2년차가 다되가는 초급 개발자입니다.

분야는 백엔드(자바) 개발자구요.

제가 학부생시절, 개인 프로젝트 진행때나 실무에서 일할때 겪었던 일들을 토대로 초보 개발자들을 위한

질문관련 내용들을 좀 정리해보겠습니다.


디버깅, 구글링으로 질문은 50%이상 해결 할 수 있습니다.

보통 개발 툴(이클립스나 비주얼코드 등..)에서는 디버그 기능을 지원합니다.

저도 처음에는 콘솔 프린트로 하나씩 찍어가면서 디버그했었는데 찾아보면 그렇게 어렵지 않습니다.

자바 이클립스를 예로 설명드리자면,

좌측에 라인넘버 옆에 마우스 좌클릭 더블클릭하시면 파란색 공이 생깁니다

이걸 브레이크 포인트라고 부릅니다.

프로그램이 순차적으로 진행되다가 브레이크 포인트에 걸리면 디버그 모드로 진입합니다.

(물론 톰캣을 일반적으로 실행하는게 아니라 디버그 모드로 실행해야됩니다.)


이때 한줄 한줄 단위로 코드를 실행하면서 variable 쪽에 변수를 확인합니다.

F5는 코드 단위 (함수를 만나면 함수에 진입합니다.)

F6은 함수 단위 (하나의 함수 단위로 진행합니다.)

F7은 해당 함수 넘어가기 (모두 진행 후 넘어간다고 생각하시면 됩니다.)

F8은 종료 (브레이크 포인트가 여러개라면 다음 브레이크 포인트에서 걸립니다.)


디버깅은 한줄한줄 진행할 수 있기때문에 어디서 오류가났는지 정확하게 알 수 있죠.

그리고 오류 코드가 나오면 천천히 읽어봅니다.

모르면 구글에 해당 오류코드를 검색해서 무엇이 잘못되서 생긴 오류이며, 해결방법에 대해 찾아봅니다.

그래도 모르겠다면 주변 사람에게 도움을 요청하거나 커뮤니티 사이트에 이렇게 질문합니다.


'이러이러한 로직을 구현하는 도중, 이런 에러가 발생해서 이렇게 해결하려 했으나 잘 안되어 질문드립니다.'

또는

'이러이러한 로직을 구현하는 도중, 이런 에러가 발생했는데 해결 방법을 찾지못해 질문드립니다.'


초보자들이 대게 하는 실수 중 하나가 그냥 막연하게 질문한다는 점입니다.

이거 모르겠어요. 갑자기 안되요. 

이런식으로 질문하면 답변자 기분도 안좋고 질문의 요점을 파악하는데 오히려 시간이 더 많이 걸립니다.


프론트엔드쪽 오류라면 크롬창에서 F12를 눌러 스크립트에서 생성되는 콘솔 오류나 

해당 엘리먼트의 값등을 확인합니다.

크롬에서도 디버그 모드를 지원하나 저는 백엔드라 콘솔 오류만 봐도 다 해결되더라구요.


다른 개발 툴의 디버깅도 유튜브에 검색하면 금방 익힐 수 있기때문에 참고하시면 되겠습니다.

또 다른 추가할 사항이 생기면 계속 업데이트 됩니다~

Leave a Comment



개발자 등록과정은 생략


페이스북에서 제공해주는 툴을 사용하면 간단히 토큰을 생성할 수 있다.

https://developers.facebook.com/tools/explorer


페이스북 비 로그인 상태에서 게시글 가져오는 방법


Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    @Resource MappingJackson2JsonView ajaxMainView;
    @RequestMapping(value="/facebookPageCrawling.do", method=RequestMethod.POST)  
    public ModelAndView facebookPageCrawling(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {        
        String token = "앱 아이디|앱 시크릿 아이디";
        String user_id = "회원 아이디";
        URL url = new URL("https://graph.facebook.com/" + user_id + "?fields=posts%7Bcreated_time%2Cmessage%2Cpicture%2Cpermalink_url%7D&access_token=" +  token); 
        HttpsURLConnection con = (HttpsURLConnection) url.openConnection(); 
 
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); 
        String inputLine; 
        StringBuffer sb = new StringBuffer(); 
        
        while ((inputLine = in.readLine()) != null) { 
            sb.append(inputLine);
        } 
        in.close(); 
        String result = sb.toString();
 
        model.addAttribute("model", result);
        
        return new ModelAndView(ajaxMainView, model);
    }
cs


토큰에 | (백스페이스 아래에 있는 구분자) 를 기준으로 앱 아이디와 시크릿 아이이디를 토큰으로 사용한다.

앱과 시크릿 아이디는 https://developers.facebook.com/apps/ 에서 본인의 앱으로 들어가서

기본설정에 보면 나와있다.


회원 아이디는 위에 그래프 툴에서 확인 가능하다.


기호에 맞게 사용하면 끝


1, 17, 19, 21번째 줄은 화면에 출력하기 위해 js단으로 데이터를 보내는 코드이므로 본인 코드에 맞게 수정할것!


Comments

  1. leesr 2019.10.31 22:36 Permalink Modify/Delete Reply

    저 궁금한게 있는데요. 현재 페이스북 그래피 api 로 자신의 페이지의 사진과 글을 올리는 것이 가능한가요?
    예전에는 가능했다고하는 것 같은데 현재는 지원이 중단됐다는 말도 있고 아직도 가능하다는 말이있고;;
    검색을 좀 해봤는데 아무래도 언어의 장벽상..100% 확신 할 수 가 없어서요.
    간단히 말씀드리자만 페이스북 api 로 페이스북 page 포스팅(사진+글)이 가능한지..알고 싶습니다.

Leave a Comment



요즘 웹 개발하다보면 API 사용할때

https가 아니면 지원을 안하는 경우가 많다.


그래서 openSSL등으로 SSL 인증을 받아내도

공식 SSL이 아니기때문에 주의요함이 뜨고 (크롬에서)

제대로 작동을 안한다.


그래서 찾아보다가 발견한것이 ngrok라는 프로그램이다.

localhost를 https 환경에서 작동시킬수 있으며

또한 외부에서 localhost에 직접 접근할 수 있다. (외부 아이피 192.168.0.x 가 아닌 로컬 호스트)


https://dashboard.ngrok.com/get-started

다운로드 링크


설치를하면 다음과같은 화면이 뜬다

시작과 동시에 ngrok 명령어를 확인할 수 있다.

ngrok라는 명령어로 다시한번 명령어들을 확인할 수 도 있다.


나는 80포트를 사용하기 때문에 다음과 같이 입력했다.

ngrok http 80


맨뒤의 숫자는 자신의 포트를 맞춰서 명령어를 작성하면 된다.


위 명령어를 사용하면 위와 같은 화면을 볼 수 있다.

포워딩으로 되어있는 링크로 가면 해당 url이 localhost로 접속하는 url이다.

맨 아래 https로 접근하면 아래와 같이 상태를 출력해준다.



비회원으로 했을 경우 커넥션 분당 커넥션 20회 제한이있다.

이 커넥션이 한 번 접속이 아니라 api 호출, url 호출등 뭘 호출해도 카운트가 쌓인다.

그래서 난 1분에 한번씩 기능을 작동해야만 했다...ㅜ

(맨 위 설치사이트에가면 회원가입하여 40회 정도로 늘릴수 있단다..)


그래도 기능은 잘 작동해주어서 성공적으로 테스트를 할 수 있었다.

아무튼 이로써 localhost에서 https 환경으로 작동하는 방법에 대해 알아보았다.


Leave a Comment


to Top