분류 전체보기
github - git bash 터미널 계정 변경
팀 프로젝트를 하다보면 기존에 github에서 로그아웃하고 다른 계정으로 작업하고 싶은 일이 생길 것입니다. 전 이 과정에서 많은 시간을 허비했으므로 (....) 기록을 남깁니다. 그 때 작업을 하는 방법을 포스트 하겠습니다. github에 새 repository를 만들고 기존에 하던 방식대로 진행하다보면 $ git push -u origin master 를 하면 remote: Permission to newaccount/projectname.git denied to oldaccount. fatal: unable to access 'https://github.com/newaccount/projectname.git/': The requested URL returned error: 403 newaccount..
이펙티브 자바 규칙 6 - 유효기간이 지난 객체는 폐기하자
자바는 C나 C++과 다르게 쓰레기 수집가가 메모리를 관리해준다. 쓸모없어진 주소값을 자동으로 폐기해줘서 수동으로 관리해주는 C,C++ 보다 편하다고 할 수 있다. 하지만 자바에서도 간간히 주소값을 관리해주는 경우가 있다. public class Stack { private Object[] elements; private int size = 0; private static final int DEFAULT_INITIAL_CAPACITY = 16; public Stack() { elements = new Object[DEFAULT_INITIAL_CAPACITY]; } public void push(Object e) { ensureCapacity(); elements[size++] = e; } public O..
리눅스 - MariaDB 테이블 만들기, 데이터 넣기
이 포스트에서는 마리아 db에서 간단하게 테이블을 만들고 데이터 입력을 해보겠다. 마리아db 자체가 mysql에서 빠져나온 소프트웨어고 sql문은 표준화된 형태가 있기에 다 같아서 다른 db와 차이가 없다. 먼저 데이터베이스를 만들어보자 show databases를 하면 데이터베이스를 확인할 수 있다. use shopping_db 로 테이블을 만들어보자 이 테이블은 10개의 글자를 저장할 수 있는 id(null 값이 되지 않고, 기본키 속성을 가진다) 5글자가 가능한 이름 int 값의 나이 5글자가 가능한 주소 를 저장하는 테이블이다. 구입 테이블도 한번 만들어보자 구입의 일련번호이다. 이는 중복되지 않아야 하므로 기본키 속성을 가지고자동으로 증가한다. 회원 번호 날짜(date의 오타다) 상품 이름 정보..
이펙티브 자바 규칙 5 - 불필요한 객체 만들지 않기
객체를 관리하는 것은 메모리리를 효율적으로 사용하는 것으로 이어진다 때문에 불필요한 객체를 생성하지 않는 것이 좋다. String s = new String("이러지 말자"); String s = "이러자";위의 String은 스트링 객체를 생성하기 위해 문자열. 즉 스트링을 이용하고 있다. 객체를 생성하기 위해, 객체를 이용하고 있기에 메모리 낭비가 생긴다. 반복문 같은 곳에서 저런 코드를 사용하게 된다면 수백수천개의 객체가 생성될 수도 있다. 때문에 String 객체는 아래와 같은 방법으로 사용하는 것이 좋다. Boolean bool = new Boolean("true"); Boolean bool2 = Boolean.valueOf("true");Boolean 도 마찬가지이다. 생성자를 통하면 객체가 ..
자바 선형 리스트 구현과 개념 (Linear List)
선형 리스트는 자료구조의 기본이 되는 구조이다. 배열과 같이 연속되는 기억장소에 저장한다. 연접리스트(Dense List) 축자 구조(Sequential Structure) 라고도 한다. 자료의 개수가 n개일 때 자료 추가시 이동 횟수는 n+1/2 이고, 삭제시에는 n-1/2 이다,. 가장 간단하고, 접근 속도가 빠르다. 기억장소를 연속적으로 배정받기에 밀도가 1로서 이용효율은 가장 좋다. 하지만 자료의 양이 거대해질 때, 자료의 이동 횟수가 기하급수적으로 늘어나는 단점이 있다. 그림으로 보자 그림판 편집이라 볼품없지만 가장 왼쪽에서 5와 10 사이에 20을 추가하면 뒤의 숫자들이 한칸 씩 밀린다. 두번째 블록에서는 값을 빼는데 중간에 값을 빼면 뒤의 값들이 한 칸 씩 당겨진다. 이를 자바 코드로 구현해..
이펙티브 자바 규칙 4 - 객체 생성은 private 생성자로 막자
때로는 정적 필드나 메소드로만 구성된 클래스를 설계할 때가 있다. 대표적 예로는 java.lang.Math나 java.util.Arrays 이런 클래스는 객체를 생성할 목적으로 만들어 진 것이 아니다. 때문에 객체 생성을 막을 필요가 있다. 추상클래스로 만들어놔도 소용이없다. 하위클래스에서 상속 할 시객체생성이 가능해지기 때문이다. 가장 확실한 방법이 생성자를 private 로 만드는 것이다. private NutrtionFacts{ throw new AssertionError(); }이런 방식으로 생성자를 설정해두면 클래스 객체 생성을 봉쇄할 수 있다.
이펙티브 자바 규칙 3 - 싱글톤
싱글톤이란? 클래스의 인스턴스를 단일화해서 언제 어떤 때에 불리더라도 인스턴스를 새로 만드는 일 없이 같은 주소를 리턴해주는 디자인 방법을 이야기 한다. 이펙티브 자바3에서는 싱글톤 패턴의 종류에 대해서 적고 있다. 1. Public final 필드 이용public class NutrtionFacts { private String name = "name"; public static final NutrtionFacts INSTANCE = new NutrtionFacts(); private NutrtionFacts(){} public void setName(String name) { this.name = name; } public String getName() { return name; } }public c..
리눅스 - MariaDB 설치, 계정생성, 로그인
이 포스트에서는 마리아DB 설치를 해보겠다 먼저 mariadb-libs를 지우고 새로깐다. 지우고 클라이언트, 공통, 서버 를 새로 깐다. mysql로 재시작을 해주고 chkconfig mysql on 을 해주자 맨 밑에거만 해주자 빨간줄을 잘못그엇다. firewall-config 설정가서 영구적 체크 해제 - mysql 체크 - 옵션 다시불러오기 설치가 완료됬으면 mysql -u root -p 를 해보자 현재 패스워드가 지정이 안되어있다. mariadb를 빠져나온 다음 mysqladmin -u root password '1234' 로 비밀번호를 설정해주자 그리고 접속 윈 클라에서 테스트를 해볼것이다. www.mariadb.org 에서 wind 용 클라를 다운받아서 설치 클라만 테스트 할것이기에 클라만 ..
리눅스 - 센드메일 서버 구현 2
1 포스트에서는 센드메일 서버 작업을 해주었다. 이제는 구체적으로 들어가서 설정을 해보자 yum -y install sendmail-cf dovecot 먼저 센드메일 내에서 메일을 보내고 받기 위해서는 이 두개가 필요하다. 이 밑의 네가지 설정의 구체적인 역할은 참고서를 봐도 동영상 강의를 봐도 설명되어있지 않다. 그냥 따라서 작업했다. makemap hash /etc/mail/access < /etc/mail/access 방금 설정을 적용하기 위해서 필요하다 다음은 유저를 만들어주자 이 센드메일에서 메일계정을 사용할 유저이다. 그리고 sendmail을 재시작하자 그리고 여기서 테스트를 할거니 systemctl restart namedsystemctl restart dovecot 도 같이 해주자. 이 작..
리눅스 - 센드메일 서버 구현 1
이 페이지에서는 센드메일 서버를 만들어보겠다. 센드메일 서버의 개념은 마지막에서 정리할 것이다. 안되는 부분이 막혀서 이틀동안 삽질 했기에 이미지 수정이 많다. 본래는 네이버와 다음으로 테스트를 했는데 무슨 이유인지 네이버가 테스트가 안되길래 yandex와 nate로 바꾸어서 테스트를 했다. 메일을 보내는 역할을 하는 서버1 (마스터 네임 서버도 겸한다)메일을 받는 역할을 하는 서버2 클라언트 2개 총 4대의 VMware로 진행하였다. 먼저 서버1(yandex) 설정 yum -y install sendmail 먼저 센드메일을 깔자 다음은 hostname을 바꾸자 hosts에 mail.yandex.com 을 추가하자 테스트 겸 내 자신한테 메일을 보낼 건데 그때 사용할 것이다. 로컬 호스트 네임에 mail..