반응형

유저생성

create user 'ms'@'%' identified by '1234'

% ==> 모든 도메일


**
create user '유저명'@'도메일' identified by '비밀번호''

 

권한부여 

grant all priviliges on test.* to 'ms'@'%' ; 

**
grant all priviliges on [db명].* to 'user name'@'domain';

참조 : www.codingfactory.net/11336

반응형
반응형

docker 마리아db 실행 

docker exec -it mariadb bash 


**
docker exec -it [docker name] [실행시킬 툴]
**

 

참조 : happygrammer.github.io/docker/mariadb/

 

도커에 Mariadb 설치

 

happygrammer.github.io

 

반응형
반응형

깃허브에 저장소를 생성 후 로컬 프로젝트를 푸시하는 방법입니다.

  1. 깃허브에 레포지토리를 생성한다.

  2. git bash / terminal 등을 연다.

  3. 푸시할 프로젝트 디렉토리로 이동

  4. 디렉토리에서 깃 init실행

    git init 
  5. 첫 커밋을 위해서 git add .

    git add .
  6. 첫 커밋 실행

    git commit -m "initial commit"
  7. 생성된 깃 레포지토리의 url 복사

  8. 커맨드창에서 리모트 레포지터리 url추가
    In the Command prompt, add the URL for the remote repository where your local repository will be pushed.

    git remote add origin [remote repository URL]  
    
    git remote -v
  9. 푸시

    git push -f origin master
반응형

'프로그래밍 > git' 카테고리의 다른 글

[git] git 공식 튜토리얼 문서. 깃튜토리얼  (0) 2015.03.21
반응형

맥에 스팀을 깔면 시작시 자동실행되서 여간 거슬리는게 아닙니다. 

 

이제 이걸 꺼보기로합시다.

1. 왼쪽 위에 사과모양을 클릭해서 '시스템 환경설정'에 들어갑니다. 

 

2. 시스템 환경설정에 들어왔으면 '사용자 및 그룹' 에 들어갑니다. 

 

3.'로그인 항목' 탭으로 이동 후 스팀을 클릭하고 '-' 버튼을 울러줍니다.

 

끝.

반응형
반응형

안녕하세요 예지우랑입니다.
본인은 Intellij를 매우 좋아하는데 그 이유는 정말 인텔리하기때문입니다.

스프링 프로젝트를 하는데 이상하게 톰캣 로그의 한들이 깨지는 형상이 있어서 여러가지 삽질을 해봤습니다.
다음은 해당 현상을 해결하기위한 노력에대한 글입니다.

1. vm옵션 인코딩 설정
intellij 설치 폴더에 가시면 intellij.exe.vmoption 과 intellij64.exe.vmoption 라는 파일이있습니다.
해당 파일을 메모장으로 여시고

-Dfile.encoding=UTF-8

라고 추가해줍니다.
그후

Edit Configurations 를 클릭하시고

이렇게 추가해줍니다.

결과는 -실패

2.  위에 1에서 했던 editconfiguration에서 vmoption에

-Duser.language=en
-Duser.region=US

이렇게 추가해줍니다.

이러면 로그가 영어로나오면서 한글이 깨지는 현상은 사라기지게 됩니다.

결과는 성공!

 

원인은 톰캣이 한글판이라서 로그를 한글로찍기때문이라는걸 어디서 읽었는데 정확히 확인해보진않았습니다.
어쨋든 로그나 오류메시지는 영어가 더 읽기 좋기때문에 영어로 사용하기로합시다.

감사합니다.

반응형
반응형

FIFO

메소드 : createQueue

enQueue: queue에 원소를 삽입

deQueue : queue에서 원소를 추출( 반환 후 삭제)

delete : queue에서 원소를 제거(그냥 삭제)

isEmpty

peek : 가장 먼저 들어와있은 원소를 검색하여 반환

 

선형큐 

연결큐

원형큐

덱(Deque, Double-ended Queue) 큐 양끝에서 삽입/ 삭제 발생 가능, 스택과 큐의 연산을 모두 가지고있다.

반응형

'프로그래밍 > 자료구조' 카테고리의 다른 글

스택  (0) 2019.06.09
연결 자료구조  (0) 2019.06.09
반응형

스택

FIFO 구조인다.

구현 : 리스트(배열)  / 연결리스트

 

메소드 : push / pop / seek 

 

응용: 역순 문자열만들기

괄호검사

후위표기법(postfix) 변환 / 계산

 

반응형

'프로그래밍 > 자료구조' 카테고리의 다른 글

  (0) 2019.06.09
연결 자료구조  (0) 2019.06.09
반응형

연결자료구조

 - 삽입 : 최초 중간 마지막

- 삭제: 최초 중간 마지막

- 탐색 :

 

단순 연결 리스트

 

원형 연결 리스트

 

이중 연결리스트

 

 

반응형

'프로그래밍 > 자료구조' 카테고리의 다른 글

  (0) 2019.06.09
스택  (0) 2019.06.09
반응형

[Windows 10 Bash]윈도우10에서 배쉬 사용하기


안녕하십니까 예지우랑입니다. 

윈도우 10이 이제는 매우 많이 보급되었죠 

위도우 10 에서 배쉬가 사용가능하다는것은 많은 분들이 아실텐데요 

사용을 하기위에선 약간의 설정이 필요합니다. 

오늘은 그 설정하는법을 알아보겠습니다. 


1. 필요 시스템 사양

  - Windows 10 64Bit

  - Windows 10 v.1607이상 ( v.1607버전 이하이신분들은 위도우즈 업데이트를 받으시기 바랍니다.) 

  - 로컬 계정이 아닌 이메일 계정으로 PC로그인


2. 설정하기

  a. 개발자 모드 활성화 

bash를 사용하기 위해서는 개발자 모드를 활성화해야합니다. 

개발자모드는 설정 - 업데이트 및 복구 - 개발자용 으로 가셔서 개발자 모드에 체크 해주시면 됩니다. 


  b. Linux용 Windows 하위 시스템(베타) 활성화

설정 - 검색[ Windows 기능] - Windows 기능 켜기 / 끄기 에서 체크 후 재부팅


  c. lxrun 설치하기(lxrun???)

bash설치를 위해 lxrun명령어를 입력합니다. lxrun명령어 대신 bash를 입력하면 bash가 없을경우 bash를 설치합니다.

※주의 

CMD를 관리자 권한으로 열어야합니다. 

윈도우 로그인을 이메일 계정으로 해야만합니다. (Ubunt Image를 스토어에서 받아오기 때문입니다.)


lxrun을 인스톨합니다. (bash라고 해도 됩니다.)


UNIX사용자 생성

설치가 완료되면 사용자를 생성합니다. 

비밀번호도 잘 입력합니다. 비밀번호를 까먹을경우 lxrun을 삭제한후 재설치해야합니다.


  이제 끝났습니다. bash명령어를 입력하면 bash를 사용할 수 있습니다. 




윈도우에서 bash를 사용할수있으니 좋습니다. 


반응형
반응형

[Junit] intellij(인텔리J) 에서 Junit사용해보기(실행편)


연결된 포스팅: (  [Junit] Junit이란    /   [Junit] intellij(인텔리J) 에서 Junit사용해보기(설정편)   )


1. 테스트코드를 써보자


이전 포스팅에서 만들어뒀던 JunitTestTest파일에 테스트를 위해서 아래와 같은 코드를 작성해봅니다. 


import org.codehaus.groovy.tools.shell.ExitNotification;
import org.junit.*;

import static org.junit.Assert.*;

public class JunitTestTest {
public static JunitTest junitTest;

@BeforeClass
public static void makeInstance()throws Exception {
junitTest = new JunitTest("홍길동", 20, 180.0f);

}
@Before
public void beforeTest()throws Exception {
System.out.println("before!!");
}
@Test
public void getName() throws Exception {
assertEquals("홍길동", junitTest.getName());
}

@Test
public void getAge() throws Exception{
assertEquals(20,junitTest.getAge());
}

@Test
public void getTall() throws Exception{
assertEquals(180.0f, junitTest.getTall());
}

@Test
public void setAge()throws Exception {
junitTest.setAge(29);
}

@Test
public void getAge2() throws Exception{
assertEquals(20,junitTest.getAge());
}

@Test
@Ignore
public void setTall()throws Exception {
junitTest.setTall(170.0f);
}

@Test
public void getTall2() throws Exception{
assertEquals(170.0f, junitTest.getTall());
}


@Test
public void setName()throws Exception {
junitTest.setName("임꺽정");
}

@Test
public void getName2() throws Exception {
assertEquals("홍길동", junitTest.getName());
}

@After
public void printAfter()throws Exception {
System.out.println("After!!");
}

@AfterClass
public static void printAfterClass()throws Exception {
System.out.println("AFTER CLASS");
}


}


먼저 실행 결과를 보고 코드 및 사용법에 대해 이야기 해 봅시다. 


실행 하는방법 먼저 보도록 합시다.


Run / Run 을 클릭합니다. 




아래에 JunitTestTest를 클릭해줍니다. 



실행결과입니다. 



이미 아시는분들도 계시겠지만 일부로 오류를 발생시킨 테스트입니다. 

좌측에 초록색으로 ok라고 된 메소드들은 테스트에 성공한 메소드들이고 

노란색 느낌표가 있는 메소드들은 테스트에실패한(결과가 개발자가 의도한대로 나오지 않은)메소드들입니다. 


age2를 보시면 java.lang.AssertionError 라고 나오고 

expected:20 , actual:29라고 나옵니다. 

개발자가 예상한 값은 20이었는데 실제 태스트해보니 값이 29다 라는걸 알려주는것이죠 


click to see difference를 눌러보면 이런 화면이 나옵니다. 


좌측은 예상한 값이고 우측은 실제 값입니다. 더 복잡한 테스트라면 명확하게 알아볼 수 있을거같습니다.


이제 코드를 하나씩 보도록합시다. 


@BeforeClass
public static void makeInstance()throws Exception {
junitTest = new JunitTest("홍길동", 20, 180.0f);

}

테스트에 사용할 객체를 생성하는 코드입니다. 

@BeforeClass라는 어노테이션은 해당 테스트에서 딱 한번만 실행하도록 하는 어노테이션입니다. 

테스트를 실행하기 전 한번만 실행합니다. 

이 어노테이션을 이용해서 객체를 생성했습니다. 


@Before
public void beforeTest()throws Exception {
System.out.println("before!!");
}

@Before클래스는 각 단위 테스트메소드가 실행되기전 무조건 실행됩니다. 

테스트메소드가 10개라면 10번 실행됩니다. 

그래서 위에 결과에 계속 before라는 메시지가 찍힌것입니다. 


@Test
public void getName() throws Exception {
assertEquals("홍길동", junitTest.getName());
}

@Test는 실제 테스트를 진행할 메소드라는것을 표시 해 줍니다. 

약간의 옵션을 줄 수 있는데 

가령 @Test(timeout=5000) 라고 옵션을 주면 5000ms이내에 결과를 받지 못하면 실패했다고 처리합니다. 

또, @Test(expected=RuntimeException.class) 라는 옵션을 주면 런타임에러(익셉션)이 떠야지 성공한 테스트가 됩니다. 


테스트에 사용한 메소드는 assertEquals(String, String)인데요 왼쪽이 개발자가 예상한값, 오른쪽이 실제 테스트를 통해서 객체가 반환해준 값입니다. 

둘이 동일하다면 테스트가 성공, 다르다면 테스트에 실패하게됩니다. 

assertEquals 메소드는 다양한 형태의 자료형을 인자로 받을 수 있습니다. 


@Test
public void getAge2() throws Exception{
assertEquals(20,junitTest.getAge());
}

그래서 위의 코드는 예상한값은 20이었는데 실제 결과는 29였기때문에 테스트에서 실패 했다는 결과를 받아볼 수 있었던 것입니다. 


@Test
@Ignore
public void setTall()throws Exception {
junitTest.setTall(170.0f);
}

@Ignore라는 어노테이션이 있는데요 이게 있으면 해당테스트는 무시해버립니다. 

위의 결과를 보시면 setTall엔 노란색 줄이 쭉쭉 가있는 아이콘이있는데 클릭해보면 이렇게나옵니다.


개발자가 의도적으로 무시했다는것이죠 



@After
public void printAfter()throws Exception {
System.out.println("After!!");
}

@After 는 각 단위테스트가 실행된 이후 한번씩 실행합니다. 만일 테스트메소드가 10개라면 10번 실행됩니다. @Before와 같은 맥락이죠 




@AfterClass
public static void printAfterClass()throws Exception {
System.out.println("AFTER CLASS");
}

@AfterClass는 해당 테스트에서 딱한번만 실행됩니다. 모든 테스트가 완료된 후 실행되죠 @BeforeClass와 같은 맥락입니다. 






위에서 사용한 assertXXX메소드는 단정문이라고 하는데 Junit에서 많이 사용하는 메소드입니다. 

이외에도 많은 유용한 메소드가 있으니 http://junit.org/junit4/ 에서 확인 해 보시면 좋을거같습니다.

단정문에대해 몇가지 알아보도록 하겠습니다. 


assertArrayEquals(a,b) : 배열 a와b가 일치함을 확인 
assertEquals(a,b) : 객체 a와b의 값이 같은지 확인 
assertSame(a,b) : 객체 a와b가 같은 객체임을 확인 
assertTrue(a) : a가 참인지 확인 
assertNotNull(a) : a객체가 null이 아님을 확인 
이외에도 다양한 단정문이 존재합니다. 자세한 내용은 아래 링크를 가시면 확인하실 수 있습다.

http://junit.sourceforge.net/javadoc/org/junit/Assert.html



위에 언급한 어노테이션들도 

http://junit.sourceforge.net/javadoc/org/junit/package-summary.html 에서 더 자세한 설명을 보실 수 있습니다. 


궁금한점 / 모자란점 / 잘못된점은 댓글을 통해서 문의 해 주시거나 지적 해 주시면 감사하겠습니다. 

감사합니다.



(다음 포스팅 예고 : Mokito) http://jdm.kr/blog/222

반응형

'프로그래밍 > Junit' 카테고리의 다른 글

[Junit] intellij(인텔리J) 에서 Junit사용해보기(설정편)  (0) 2016.12.19
[Junit] Junit이란  (0) 2016.12.19

+ Recent posts