2018년 9월 9일 일요일

git 작성자 수정하기

rebase란?

공부가 필요해.....
http://mafams.tistory.com/66
https://backlog.com/git-tutorial/kr/stepup/stepup2_8.html
https://elegantcoder.com/git-merge-or-rebase/
http://cyberx.tistory.com/96




git에 자꾸 다른 이름으로 커밋이 되어 작성자를 바꾸려고 하는데

rebase를 통해 가능한 것같다.


git저장소에

git rebase -i -p   [커밋번호]

>[커밋번호] 이 후의 커밋들이 rebase의 대상이 된다.


vi창이 보이는데 a를 눌러 바꾸고싶은 커밋을 pick 을 edit으로 교체 후 esc  > :wq

나의 경우에는 작성자를 바꾸려고했으니
 git commit --amend --author="cotgyu <이메일 주소>"

를 입력하면  해당 커밋 내용 같은게 보인다.. :wq 로 나와서
 git rebase --continue
를 입력하면 다음 수정할 커밋이 나온다.

이 과정을 마지막 커밋까지 반복하면
Successfully rebased and updated ~~ 가 나온다.

이제 pull 후 push하면 수정한 것들이 새롭게 커밋된다..


(그냥 새로운 작성자의 같은 내용의 기록이 새롭게 커밋되는 형태로 되었다.... 기존의 기록을 수정은 안되는건가.. 좀 더 공부할 것)

참조

2018년 8월 19일 일요일

이클립스-git 오류: cannot open git-upload-pack

오류 -  cannot open git-upload-pack


해결방법
window > preference > team > git > configuration

>add entry

key : http.sslVerify
value : false


추가 

MySQL 테이블 데이터 추출하기(.csv)

머하웃의 간단한 아이템 기반 추천알고리즘을 적용해보는 과정에서,
알고리즘이 .csv 파일을 읽어 특정 개수의 아이템을 추천해주는 방식이었기 때문에, DB의 테이블을 .csv 파일로 뽑아내는 작업이 필요하였다. 


여기를 참고하여 데이터를 뽑았는데, 나는 첫번째 SQL을 사용하였다.

1
2
3
4
5
6
SELECT * FROM recommend_coursedata
INTO OUTFILE 'C:/MySqlOutputData/test.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n';
cs
이를 실행하면 
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

에러가 발생하는데, 파일이 생성되는 경로와 mysql서버의 secure-file-priv 경로와 달라서 발생하는 에러 같다. 

INTO OUTFILE 의 경로는 
mysql 서버의 secure_file_priv 에 명시에되어있다. 


여기서 나오는 데이터를 기준으로 추천을 해주기 때문에 관리자 계정이 버튼으로 추천 데이터를 업데이트해주자는 생각으로 진행하였다. 그렇기 때문에 버튼을 누를 때 마다 
저 경로의 파일을 지우고, 새로 파일을 생성하는 방식으로 진행하려고 하였다. 

하지만, 경로가 ProgramData 속에 있기 때문에 수정/삭제에 대해 관리자 권한이 필요하였고, 경로를 바꾸기로 하였다. 

나의 경우에는 
my.ini 
secure-file-priv 의 경로를 직접 바꾼 후 mysql을 재시작하여 진행하였다. 


2018년 8월 12일 일요일

EJB / bean

엔터프라이즈 자바빈즈

위키백과, 우리 모두의 백과사전.
둘러보기로 가기검색하러 가기
엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.

EJB의 종류[편집]

EJB에는 다음 3가지 종류가 있다.
  • 세션 빈 (Session Bean) : DB 연동이 필요 없음
  • 엔티티 빈 (Entity Bean)
    • 데이터베이스의 데이터를 관리하는 객체
    • Insert(삽입), Update(수정), Delete(삭제), Select(조회)
    • DB 관련 쿼리는 자동으로 만들어지고 개발자는 고급 업무 처리에 집중할 수 있음
    • DB가 수정되면 코드 수정 없이 다시 배포(설정 문서 만들어서 복사)
  • 메시지 구동 빈 (Message-driven Bean) : JMS로 빈을 날려줌


EJB 배경, 설명(블로그 참조) 

http://pokey.tistory.com/7
>>>
EJB는 대규모 분산 객체 시스템을 구축하기 위한 기술 또는 자바로 서버 측 비즈니스 로직을 작성하기 위한 Enterprise 환경에서의 자바 표준이라고 보시면 됩니다. 흔히 프리젠테이션 로직이라고 하는 것이 화면에 보여지게 되는 정보의 타입, 포맷을 자동으로 처리하는 반면 비즈니스 로직은 급여계산 한다든지 하는 보이지 않는 어떤 처리를 하는 겁니다. 만약 EJB를 사용하기 위해 웹로직 서버를 이용한다고 하면 프로그램 개발자는 웹로직 서버의 컨테이너를 이용하여 작업을 하게 되는데 이는 트랜잭션의 지원, 보안, 동시 접근 처리 등 비즈니스 로직을 처리하는데 있어 필요한 모든 것을 제공 한다고 보면 됩니다.

참고
http://i-bada.blogspot.com/2014/09/enterprise-javabeanejb.html



********************************

빈(bean)

빈: 자바로 작성되어진 컴포넌트들로 JSP페이지에서 디자인부분과 로직부분을 분리시키고, 재사용성을 높여 효율성을 높여줌.

-규격
- 클래스는 패키지화 하여야 한다.
- 멤버변수는 프로퍼티(Property)라 칭한다.
- 클래스는 필요에 따라 직렬화가 가능하다.
- 프로퍼티의 접근자는 private이다.
- 프로퍼티마다 getter/setter 가 존재해야 하며, 그 이름은 각각 get/set으로 시작해야 한다.
- 위의 프로퍼티 getter/setter 메서드의 접근자는 public이어야 한다.
- 외부에서 프로퍼티에 접근은 메서드를 통해서 접근한다.
- 프로퍼티는 반드시 읽기/쓰기가 가능해야 하지만, 읽기 전용인 경우 getter만 정의할 수 있다.
- getter의 경우 파라미터가 존재하지 않아야 하고, setter의 경우 한 개 이상의 파라미터가 존재한다.
- 프로퍼티의 형이 boolean일 경우 get 메서드 대신 is메서드를 사용해도 된다.

참고




2018년 7월 29일 일요일

공통코드란??

공통코드란?

- 데이터 속성에 사용되는 값을 코드로 표현하여 짧고 간결하게 구분할 수 있게 함.

ex)
게시판에는 여러 종류가 있다.
일반게시판, 질문게시판, 사진게시판

각 게시판 컬럼마다 구분해주는 속성을 줘서

boardtag - 'qna', 'free' 등 처럼 글자로 구분할 수 있겠지만,

이부분을 코드로 표시하고

코드테이블로 관리하여
일반게시판 B01
질문게시판 B02
사진게시판 B03
일반 회원 U01
관리자 U09

이런식으로 코드를 줘서 한 테이블로 관리할 수 있다.



좀 더 찾아볼 것...



참조
http://wiki.gurubee.net/pages/viewpage.action?pageId=28116108

http://blog.naver.com/PostView.nhn?blogId=new_magma&logNo=20156422595

2018년 7월 8일 일요일

Cot_pr1 개선하기 (진행 중) - LastUpdated 10/02

포트폴리오용 커뮤니티 웹페이지를 개선시키려고한다.
전에 존재하던 저장소가 gitignore 설정테스트하다가 커밋들이 꼬여서 너무 더러워졌다..
소스트리 사용해서 편하게 하려다가 망함 ㅠㅠㅠ

>>새로 프로젝트 생성해서 처음부터 ignore, branch 등 설정 제대로 해서 만들어보기!
-- 7/8 생성 완료


1. 오류페이지 생성 --- 7/15 완료
(403, 404, 405, 500에러시 이동하는 페이지 생성
web.xml에
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  <!-- 에러 페이지 -->
  <error-page>
      <error-code>403</error-code>
      <location>/error/403</location>
  </error-page>
  <error-page>
      <error-code>404</error-code>
      <location>/error/404</location>
  </error-page>
    <error-page>
      <error-code>405</error-code>
      <location>/error/405</location>
  </error-page>
  <error-page>
      <error-code>500</error-code>
      <location>/error/500</location>
  </error-page>
cs
형태로 설정하여 에러코드 발생 시 error 컨트롤러로 이동하게 수정

403 - 권한 부족
404 - 페이지를 찾을 수 없음
405 - 잘못된 요청방식
(예를 들어 POST 방식으로 요청을 받는 서버에 GET 요청을 보내는 경우, 또는 읽기 전용 리소스에 PUT 요청을 보내는 경우)
500 - 서버 에러
)

2. 회원가입/ 로그인(연동추가) ++ 회원 전체적인 부분 다시 개선(회원정보,권한,로그인유지 등)

3. 도메인

4. ajax부분 다시 

5. xss필터

6. 공통코드로 관리할 것(권한, 게시판구분 등 ) ---  8/12 진행 중
----------7/29
-code테이블 생성
게시물, 회원코드로 관리할 것
(공통 코드란??)

코드로 관리하여 게시판 및 컨트롤러 통합해도 될듯

++++++8/12
현재형태: 각 게시판마다 글쓰기, 수정, 뷰, 댓글, 등 다 따로 있음.
일단 기존 것 그대로 나두고, 새로운 틀 생성해서 진행하기
>>
테이블들 코드로 관리하고, 게시판형태 하나로 통합해서 body만 각 게시판에
맞게 바꾸기 + 게시물 리스트, 페이징 처리할 때 ajax 써보기
>>NoN빨리 마무리하고 진행하기


7. service / dao / controller 수정(인터페이스만들기)


8. 스프링시큐리티 수정
(++관리자 로그인 후 관리자 페이지 이동 시 비밀번호 입력(의미없음 - 수정 필요)



9. 로그출력 추가 --- 10/02 완료
logback 으로 간단한 로그 남기는 것  추가함.
(로그 남기기)



10. 트랜잭션 설정하기



11. +++계속 추가

(NoN 플젝에 엑셀파일 읽는 것을 스케줄러로 처리하면좋을듯?)