반응형

필자는 최근 결혼을 하였다. 
1년 이라는 준비기간을 거쳐 성공적으로 결혼식을 올렸다.

결혼 준비를 하다보니 너무 많은 것을 준비해야했고, 전체적인 틀을 알고 준비하고 싶은 사람들에게 전달하는 글이자 나의 경험을 일기처럼 작성하고 싶었다.  + 약간의 타임라인?

모두가 필자처럼 결혼준비를 하는 것은 아니다. 또한 필자의 결혼 준비가 정답은 아니다. 따라서 참고만 하면 좋을 것 같다.

 

양가 부모님께 첫인사를 하고 난 이후 첫 준비를 하였다.

 

1. 우선 예식장을 잡았다

웨딩북이라는 어플에서 예식장을 비교해보며 예약하고 돌아다녔다. 플래너가 지정이 되었고 그 플래너는 우리를 귀찮게하지 않았다. 단지 우리가 물어보는 것에만 대답해주는 플래너였다. 원하는 날짜, 그리고 원하는 지역의 웨딩홀을 돌아다닌 끝에 맘에드는 예식장을 찾았다. 

 

2. 예식장 후에는 스드메를 하였다.

어쩌다보니 다이렉트 웨딩이라는 네이버 카페를 가입하게 되었다. 여기는 할때마다 리뷰를 적으면 캐시백을 해주는 카페였다. 필자가 가입했던 시기에는 동행 플래너는 없었지만, 나중에 동행 플래너가 생긴 것으로 안다. 아무튼간에 가입을 하게되면 연락이 계속 온다... 스드메를 빨리 예약하는게 좋다고 하여 박람회를 참석하게 한다. 나는 이 박람회가 아무것도 모르던 우리에게 많은 귀감을 주어서 좋았다. 또한 미리 계약을 해놓을 수 있어서 편리했다. 박람회를 가기전 스드메에 원하는 느낌을 찾아놓고 박람회를 참여해야한다. 그 이유는 선택이 빨라진다 ㅎㅎ 원하는 스타일의 금액을 타협 볼 수 있으며 원하는 느낌의 스드메를 추천받을 수 있기 때문이다. 그렇게 계약을 하였다. 계약을 하게 되면 일정을 바로바로 잡아준다.

1. 촬영 일정을 잡고 2. 드레스투어 일정을 잡는다. 3. 메이크업 일정을 잡는다.

 

3. 드레스 투어를 하였다.

정한 일정에 드레스 투어를 한다. 드레스투어는 하루에 보통 드레스샵 3곳 정도를 돌아본다. 드레스투어는 드레스 샵을 고르는 투어이다. 당일에 정해서 계약하여야한다. 그래야 좋은 라인의 예쁜 드레스를 추가금 없이 고를 수 있다. 

 

4. 예복 투어를 하였다.

예복의 경우 우리가 한발 늦었다. 몰랐던 사실 중 하나가 예복을 맞추면 본식날에만 입는 줄 알았는데, 그게 아니라 촬영날에도 입는 것이였다. 좀 늦어져서 그냥 촬영날은 대여를 많이해서 입었다 ㅎㅎ 예복을 계약을 하고 본식날에 맞춰서 여러번 가봉일정을 잡는다.

 

5. 촬영 드레스 투어를 하였다.

드레스샵을 골랐으니 촬영날 입을 드레스를 고르러 갔다. 

 

6. 상견례

상견례를 하였다.

양가 부모님께서 더 긴장하셨고, 다행히도 잘끝났다 ㅎㅎ

 

7. 스튜디오 촬영 및 촬영준비

스튜디오 촬영을 위해 준비를 했다.

촬영용 부케를 구매하고 받아왔고, 촬영용 예복을 미리 대여해왔다. 

또한 표정연습은 미리미리 하였다. (주로 눈웃음 연습 ^^)

손톱도 정리하였고, 본식날 신을 웨딩슈즈도 미리 구매해두었다. 

남편의 경우 정장에 입을 검은 양말과 양말깔창 그리고 넥타이를 준비하였다. 

웨딩링도 촬영전에 구매하고 가지고왔다 ㅎㅎ 

간식은 따로 챙기지 않고 촬영 중에 음료랑 디저트를 시켜서 먹었다.

촬영날에는 친구가 와서 사진을 엄청 찍어줘서 고마웠다 ㅎㅎ 

 

8. 촬영 사진 셀렉

한 2주정도 뒤로 날짜를 잡았고, 생각해둔대로 셀렉을 완료했다 ㅎㅎ 

추가금 안들기 위해 노력했으나, 액자는 그래도 괜찮은걸로 바꿔서 조금 들긴했다.

 

9. 한동안 좀 쉬면서 신혼여행 준비

신혼여행지를 고르고 일단 비행기 티켓부터 구매하였다.

티켓을 따로 일찍 사놓는게 금액이 저렴하기 때문에 이런 선택을 했다.

그러고 나서 여행사에 문의를 했고, 원하는 코스로 예약했다. 

 

10. 집 구하기

우리는 비교적 집을 일찍 구했다. 미리 들어가있으려고 했기도 했고 빨리 구해야될것만 같았다... 

보통은 3~4달전에 구하는 것 같긴 하다. 둘다 자취를 하지 않아서 처음 구하는 거라 헤맸지만 다행히 잘 구했다.

 

11. 가전,가구

가전 가구는 집에 입주하기 한달전에 구했다.

가구는 조금 늦게 알아보러 다녔다고 했다...  원래는 두달전에 보러다니나??

 

12. 집 관련

어지저찌 입주 한달 전에 청년버팀목전세대출을 신청했다. 그리고 입주날 다행히 대출이 잘 나왔고 입주청소 및 도배를 완료했다. 입주날에 맞춰 가전 가구를 배송받았다.

 

13. 앨범 픽업

앨범을 가지러 갔고 차를 가지고갔다. 아무래도 앨범과 액자가 너무 무겁다는 얘기를 들었기 때문에...

무거워서 차를 꼭 가져가기를 추천한다.

 

14. 어머님 한복 및 본식 드레스 가봉

양가 어머님 한복을 대여를 알아보고 계약했다.

본식 드레스 가봉일자가 다가와서 잘 고르고 왔다.

 

15. 본식 준비

청첩장은 두달 전부터 준비했고, 나옴과 동시에 청첩장 모임을 진행했다.

식순과 bgm도 정했고, 축주와 축사를 부탁했다.

예복도 준비하고 본식 준비와 동시에 신혼여행 준비까지 하느라 힘들었다.

 

 

 

 

반응형
반응형

Oracle Client 를 처음으로 설치해보았다.

요즘에는 Oracle이 없어지는 추세이긴 하나, 그래도 DB 공부를 위하여 설치하였다. 

 

우선 Oracle Client가 왜 필요한지부터 알아 보았다.

Oracle Client 가 필요한 이유는 DB 서버에 접근하기 위함이다.

보통은 AP서버 (Application 서버) 와 DB서버(DBMS가 설치되어있는 서버) 가 분리되어 있기 때문에 서로 연결하기 위해서는 이 Oracle Client 가 필요하다. (큰 회사일수록 AP 서버와 DB 서버는 분리되어있었다.)

필요한 이유와 DB의 구조에 대해서는 아주 잘 정리되어있는 글을 첨부한다.

 

참고 : https://loosie.tistory.com/506

 

DB 동작과정을 이해해보자 (애플리케이션과 DB 커넥션)

DB 동작과정 살펴보기 이 글은 오라클 기준으로 작성하였다. 애플리케이션에서 오라클로의 커넥션 과정의 이해가 필요한 이유는 애플리케이션에서 접속하는 것을 최적화하는 것만으로도 DB의

loosie.tistory.com

따라서 Oracle Client가 필요하고 대부분은 linux 를 사용할 것이기 때문에 OS는 linux 용으로 설치하였다. 

필자의 Oracle 버전은 12.2 버전이였다. 

버전확인을 위한 명령어를 아래에 적는다.

select * from v$version

버전 확인이 끝났다면 해당 버전의 Oracle Client 를 설치한다.

12.2 버전이였으므로 12.2 버전에 해당하는 Oracle Client를 다운받았다.

Oracle Client 버전이 DB 버전보다 낮은건 호환이 잘 될테지만, Oracle Client 버전이 더 높다면 호환이 잘 안될 가능성이 높다. 따라서 버전은 그냥 맞춘다고 외우면 될 것 같다.

rpm 파일로 받아도 된다. rpm으로 받을 경우 rpm 작업으로 설치가 가능하다. 

그러나 필자는 root 로 설치를 하지 않고 경로도 default 값으로 셋팅을 하지 않기 위하여 .zip 파일로 받았다.

다운을 받은 항목은 다음과 같다.

  • instantclient-basic-linux.x64-12.2.0.1.0.zip
  • instantclient-sqlplus-linux.x64-12.2.0.1.0.zip
  • instantclient-sdk-linux.x64-12.2.0.1.0.zip
  • instantclient-precomp-linux.x64-12.2.0.1.0.zip

precomp 를 제외하고 3개만 있어도 괜찮다.

필자가 precomp를 다운받은 이유는 소스를 빌드하기 위함이다.

당연한 얘기지만 Proc 로 개발이된 소스들은 *.h 파일들이 존재해야 빌드가 가능하다. 따라서 precomp 파일도 필요하다.

따라서 설치해놓는 것이 좋다.

 

이제 Ap서버 (Application 서버) 에 해당 *.zip 파일들을 모두 배포한다. (Filezilla , Winscp 등으로 배포)

설치할 계정으로 접속하여 zip 파일을 모두 푼다.

위와같이 나오게 된다. 

이제 실행할 계정의 .bash_profile 에 환경변수를 물려준다. ( 로그인 시 계속 환경변수가 적용되어야 함으로 .bash_profile 에 적용 )

export ORACLE_HOME=/home/dbms/instantclient_12_2
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=KOREAN_KOREA.AL32UTF8

적용이 완료되었다면 이제 마지막 단계이다.

tnsnames.ora 를 생성하여 설정하여준다.

tnsnames.ora 는 연결할 DB 서버의 정보들을 넣는 것이다. (ip, port, sid) 

"DBNAME" =
	(DESCRIPTION = 
   		(ADDRESS = (PROTOCOL = TCP) (HOST = "X.X.X.X") (PORT = "port번호"))
		(CONNECT_DATA =
			(SERVER = DEDICATED)
			(SERVICE_NAME = "sid")
		)
	)

"" 가 있는 부분들을 전부 기입하여 넣으면 된다. ("" 는 지우면된다)

이 tnsnames.ora는 아무곳에다 넣어도 된다. 왜냐하면 TNS_ADMIN 이라는 환경변수를 만들어서 넣어줄거라서 명시하면 해주면 된다.

필자는 tnsnames.ora 파일을 생성 후 /home/dbms에 놓았다.

이제 .bash_profile에 맨 밑부분에 아래 항목을 추가해 준다.

export TNS_ADMIN=/home/dbms

이제 .bash_profile 을 다시 물린다. 

# 1번 방법
cd ~; source .bash_profile
# 2번 방법
cd ~; . .bash_profile
# 3번 방법
# 재기동한다.

안될 경우 .bash_profile 이 홈디렉토리 밑에 없는 것이니 위치 잘 이동하길 바란다.

이후 sqlplus 를 실행하면 잘 작동 될 것이다.

sqlplus 계정/password@sid이름

위와 같이 접속해서 접속이 잘 되는지 확인하면 된다.

반응형
반응형

esxi 에서 서버의 디스크를 증설하였고, 그 마지막 단계에서 xfs_grow 에서 error 가 났다.

디스크 증설 도중에 아래와 같은 에러가 났다.

$ xfs_growfs /dev/mapper/centos-home
xfs_growfs: /dev/mapper/centos-home is not a mounted XFS filesystem

 

/dev/mapper/centos-home 이 XFS 파일시스템으로 마운트되지 않았다는 얘기였다...

cat /etc/fstab 으로 확인해보니 /dev/mapper/centos-root 가 XFS로 되어있었다. 정확한 mount 포인트가 아니였다.

정확한 mount 포인트를 설정해주어야 가능했다. centos-home 의 경우에는 마운트포인트가 '/' 였기 때문에 그 전과정까지는 centos-root 에 할당이 잘 되었던것같다. (lsblk 명령어 수행시 정상적으로 보인 이유) 

xfs_growfs /

위와 같이 명령어 수행시 정상적으로 수행되었다. 

 

*) 추측이 맞다면 xfs_growfs /dev/mapper/centos-root 로도 정상적으로 작동 될것같다. 안된다면 디스크 증설작업에서 lvextend 명령어에서도 /dev/mapper/centos-home 으로 설정이 되어서 그랬을것 같다... 다시 초기화하고 설정해야할듯싶다.

반응형
반응형

notion 에서 memaid 작성 시에 짤리는 현상이 있다.

위와 같이 밑에부분이 짤리는 현상이 있다.

그럴때는 해당 영역에 `` 를 붙혀주면 된다.

func_2 부분에 " " 안에 `` 를 넣어 표시해주니 바뀐 것을 알 수 있다.

반응형
반응형

컴파일 시 warning

아래와 같은 warning 이 발생하였다.

warning: ‘%s’ directive writing up to 255 bytes into a region of size between 192 and 255 [-Wformat-overflow=]

해당 warning은 버퍼오버 플로우를 방지하라는 warning 이다.

이유는 담을 변수의 사이즈가 더 작거나 같거나 할때 나타는 warning 이다.

예시로는 아래와 같은 상황이다.

ex) 
char buf[5];
long a = 10000000;
sprintf( buf, "%d", a )

결국엔 buf의 사이즈보다 더 큰 상황이 올 것이고, 버퍼오버플로우가 날 것이다.

이 부분을 방지하는 것이다.

 

참고 : https://stackoverflow.com/questions/51697753/how-to-suppress-sprintf-warning-directive-writing-between-1-and-11-bytes-into

반응형
반응형

스트림 (stream)

직역하면 흐르다 인데, 원래는 물이 흐르는 시냇물을 의미한다.

컴퓨터에서는 데이터의 흐름으로 말한다. 즉, 데이터가 바이트이기에 바이트의 흐름이다.

흐르기 위해서는 통로가 필요하기때문에 통로라고도 부른다.

컴퓨터에서 스트림
: 데이터의 이동 통로 혹은 바이트의 흐름

linux 에서 스트림은 network 를 연결할 때, device 를 연결할 때 process 끼리 소통할 때 사용된다. 

 

linux 는 파일로 모든 것이 이루어져 있기 때문에 파일에 관한 시스템 콜인 open, close, read, write 가 stream 을 다루는 함수가 된다. open 함수는 fd 값을 반환시키는데, fd가 바로 스트림이 된다. (fd 가 파일을 연결시켜주는 통로가 되기 때문에) 

int open(const char* path, int flags, mode_t mode)

 return 값이 int 형인 fd 가 된다. 즉 스트림을 만들어주는 함수가 이 open 함수가 되는 것이다. 

그렇게 fd (stream) 을 받았으면 그 스트림에 데이터를 흘려 보낸다. 어떻게? write 함수로 

ssize_t write(int fd, const *buf, size_t bufsize)

이게 write (스트림, 보낼 데이터, 보낼 데이터의 크기) 가 되는 것이다.

받는 쪽에서는 read 로 읽는다.

ssize_t read (int fd, void *buf, size_t bufsize)

read (스트림, 읽을 데이터, 읽을 데이터의 크기) 가 된다.

 

close의 경우 스트림을 닫는 역할을 한다. 

int close(int fd)
반응형
반응형

ssd mount  도중나온 error 메세지

mount: /datfs: unknown filesystem type 'ntfs'.

 

ntfs 의 파일시스템 타입이 없다...

당연히 nfs 를 설치를 안하여 나오는 현상이였으나 순간 당황하였다...

 

nfs 를 설치를 하자!!

아래와 같이 설치하면 된다.

# 확인 명령어
rpm -qa | grep nfs

# 결과값이 없을 경우 설치
# 아래 명령어로 설치할수있는 패키지 확인
yum search nfs 

# 그 중에 nfs-utils.x86_64 설치 (nfs-util을 설치하면 된다. 그 뒤는 각자 설정에 따라)
yum install -y nfs-utils.x86_64

이후 mount 시 정상작동 된다!! 

반응형
반응형

esxi 의 경우 다른 물리적인 장비와 nfs 연결 시에 ip가 다르다. 

따라서 /etc/exports 에서 esxi 에서 vm 생성시 고정 ip 가 아닌 외부로 나가는 ip로 nfs가 연결될 때 해당 error 가 난다.

( ※ No route to host 가 날 수도 있는데 이 error 도 똑같이 조치해보자) 

따라서 /etc/exports 부분에 모든 ip에 대해서 허용하던지 아니면 esxi 의 물리적 nic 의 ip를 허용해주던지 해야한다.

# /etc/exports
# 모든 ip에 대해 허용한다.
/test *(rw,no_root_squash,async)

 

위와 같이 esxi 가 아닌 경우에 할 수 있는 조치는 다음과 같다.

1. nfs 재기동

# nfs 재기동
systemctl restart nfs-server
# nfs 상태 확인
systemctl status nfs-server

2. nfs 방화벽 설정 확인

3. nfs 버전 확인

# nfs 버전 확인
cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
# -는 지원 안함. +는 지원함.
# 해당 버전이 client 와 server 모두 동일한 지

4. selinux 설정 확인 

# selinux 설정 해제 방법
# setenforce 0
# sestatus
반응형

+ Recent posts