최근들어 샤워를 해도 배수구 물이 안내려가는 문제가 생겼습니다. 머리카락은 배수구 뚜껑에서 걸러지기 때문에 딱히 막힐일이 없는 것 같은데 왜 막히는건지 모르겠네요. ㅠㅠ;; 아래 동영상을 보면 샤워기 물을 튼지 1분도 안되어 물이 찰박거리는 것을 볼 수있습니다. 좀 냅두면 내려가긴 하는데 상당히 오래걸립니다.

 

어떻게 해야하나 고심하던 차에 Youtube 동영상 광고에 강력한 배수구 클리너가 눈에 들어오더군요. 어떻게 딱 필요한게 찾는 순간에 광고로 떳는지 신기할 따름입니다. 속는셈치고 한 번 구매해봤습니다.

3+1행사라고 하기도 하고 혹시 모르니 4개를 구매해서 38,700원이 들었습니다. 거짐 4만원이네요;; 열어보니 총 4 곽이 왔고 한 곽안에 또 4포가 들어있습니다.

사용방법을 읽어보니 한포를 뜯어서 막힌 배수구에 붇고 따뜻한 물한컵 끼얹어주면 3시간 후엔 배수구가 뚫린다고 합니다. 한 포가 너무 많은건지 생각보다 거품이 많이 올라오네요.

배수구 청소를 하고 1주일 가량 지난 뒤 모습입니다. 이전과 비교해 상당히 양호해진 모습입니다. 흠, 사용할 땐 그냥 잘 내려가는구나 했는데 동영상 찍으면서 보니까 그렇게 뻥뚫린 느낌은 아니네요. 그래도 전 만족합니다. 무엇보다 샤워할 때 바닥이 찰박거리지 않아서 좋네요. 다만, 사고보니 4곽은 좀 많다는 생각이 듭니다. 배수구에 한 포 더 쓰고 여기저기 기회봐서 사용해야겠습니다. :-)

 

20년 07월 07일 추가

클리너를 사용한지 얼마 안되어 또 똑같은 문제가 발생했습니다. 저번엔 철제 거름막 위에 뿌려서 그런가? 하고 철제를 들어내고 밑에다가 써야지 하고 뚜껑을 열었더니... 오우 쉣! 머리카락 뭉텅이가 먼지와 함께 상당량 엉켜서 배수구 입구에 걸려있더군요. 머리카락 걷어내고 클리너 넣고 물넣고 뚜껑 닫았더니 바로바로 내려가네요. 좋습니다. 역시 약품이 물리적 청소를 못따라오네요. : )

저는 막귀입니다. 들었을 때 뭐 저음이 어떻고 고음이 어떻고 하는 것은 모릅니다. 그냥 지지직거리지 않고 소리 잘 들리면 만족하는 사람임을 참고해주세요. 단순히 친구들과 같이 게임할 때 얘기하면서 하려고 구매했습니다. 가성비 헤드셋으로 검색해보니 이 헤드셋을 많이 추천하더군요.

선이 B타입 USB 하나있습니다. 저같은 경우 Aux선 이것저것 많이 있으면 뭘 어디에 꽂아야할지 몰라서 당황하곤 하는데 USB 하나 꽂으면 동작하는 부분은 편하고 좋습니다. 조정기?에는 볼륨조절 버튼이 있고 밑에 버튼이 세개 더 있습니다. 하나는 마이크로 누르면 불이 켜졌다 꺼졌다합니다. 나머지 두 개는 3D, ((V)) 라고 쓰여있는데 눌러봐도 딱히 뭐가 달라지는지는 모르겠습니다. 딱히 표시도 없습니다. 글자로 봤을 땐 뭐 진동오는 기능인것으로 보입니다. 저같은 경우 딱히 쓸일은 없어보입니다. 일단 처음 선 꽂고 헤드셋을 쓰면 약하게 전기소리가 들립니다. (옛날에 TV키고 볼륨 0으로 하면 나던 소리) 그렇게 심하진 않습니다. 동영상이나 노래를 틀었을 땐 전기소리가 들리지 않습니다. 소리 잘나옵니다. 마이크도 잘들린다고 하네요.

주문은 20년 5월 30일에 했고 금액은 배송비 포함 31,000원입니다. 

아쉬운 점은 헤드셋을 살때는 헤드셋만 봤는데 헤드셋이 생기고나니 놓을 곳이 마땅치 않아서 거치대 같은걸 껴줬으면 좀 더 좋지 않았을까 생각을 해봅니다. 인간의 욕심은 끝이 없죠. ㅎㅎ.. 아무튼 막귀인 제 입장에선 제 기능 잘하고 가격대비 좋은 것 같습니다.

간단하게 Button 3개와 FrameLayout을 이용하여 Tab을 만들어 보았습니다.

가장 위에 TAB1, TAB2, TAB3 버튼이 있고 각 버튼을 클릭했을 때 클릭한 버튼의 번호와 일치하는 Content 화면을 앞으로 가져옵니다.

// TestActivity
package com.example.practicetab;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        findViewById(R.id.tab1).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                findViewById(R.id.content1).bringToFront();
            }
        });
        findViewById(R.id.tab2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                findViewById(R.id.content2).bringToFront();
            }
        });
        findViewById(R.id.tab3).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                findViewById(R.id.content3).bringToFront();
            }
        });
    }
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <LinearLayout android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <Button android:id="@+id/tab1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Tab1"
            />
        <Button android:id="@+id/tab2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Tab2"
            />
        <Button android:id="@+id/tab3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Tab3"
            />
    </LinearLayout>
    <FrameLayout android:id="@+id/content_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/tab_layout">
        <TextView android:id="@+id/content3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:background="#0000ff"
            android:textSize="50sp"
            android:textColor="#ffffff"
            android:text="Content3"
            />
        <TextView android:id="@+id/content2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:background="#00ff00"
            android:textSize="50sp"
            android:textColor="#ffffff"
            android:text="Content2"
            />
        <TextView android:id="@+id/content1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:background="#ff0000"
            android:textSize="50sp"
            android:textColor="#ffffff"
            android:text="Content1"
            />
    </FrameLayout>
</RelativeLayout>

정렬 관련 속성값을 조금 조절하면 세로텝으로 변경도 가능합니다.

'개발 > android' 카테고리의 다른 글

Hello World  (0) 2020.04.03

[개념]

간단하게 설명하자면 하드링크는 동일한 파일에 다른 이름을 붙히는 것입니다. 심볼릭 링크는 바로가기 입니다.

원본 파일의 하드링크를 만들었을 때 이 둘은 동일한 파일이기 때문에 하나를 변경하는 것은 둘 모두를 변경하는 것과 같습니다. C++의 참조자라고 생각하면 좋겠네요. 하드링크는 동일한 변수를 서로다른 이름으로 부르는 C++의 참조자와 비슷합니다. 대용이라는 친구가 있고 별명이 빅드래곤이라고 가정한다면 대용이라고 부르던 빅드래곤이라고 부르던 동일한 사람을 부르는 것이죠. 마찬가지로 /home/sinsisao/test.original이라는 파일과 그 하드링크인 /home/sinsisao/UbuntuStudy/test.hardlink가 있다면 경로나 파일 이름은 다르지만 둘은 동일한 데이터 블록을 가진 동일한 파일을 칭하는 것입니다. 한 가지 유의할 점은 둘중 하나를 삭제한다는 것의 의미가 파일의 삭제가 아닌 하드링크의 삭제라는 것입니다. 사용하던 이름 하나를 없애는거라고 생각하시면 쉽게 이해가 될듯합니다. 어떤 경우에 하드링크를 주로 사용하는지는 잘 모르겠습니다. 예상해보건데 아마 백업용으로 사용하지 않을까 싶네요.

+ 디렉터리의(폴더의) 하드링크를 만들 수 없습니다.

+ 다른 디스크에 하드링크를 만들 수 없습니다. 예를 들어 C드라이브에 있는 파일의 하드링크를 D드라이브에 만들 수 없습니다. 이유는 잘 모르겠습니다.

 

심볼릭 링크는 "윈도우 바로가기 만들기"의 바로가기와 비슷합니다. 말그대로 특정 경로의 파일을 가리킵니다. 해당 파일이 삭제되거나 다른 경로로 이동된다면 바로가기를 사용할 수 없습니다. 사용예로는 하드디스크를 /mnt/hdd와 같은 곳에 마운트한 후 본인의 home에 심볼릭 링크를 만들어 이용할 수 있겠습니다.

또, 잘 알진 못하지만 alternatives 라는 것에서 사용하는듯 합니다. alternatives의 대략적인 개념은 test2.2test3.3 식으로 test라는 프로그램의 2.2버전과 3.3버전 바이너리를 모두 가지고 있을 때, 사용하고자하는 버전 바이너리의 심볼릭 링크를 test 라는 이름으로 만들어서 쓰는 겁니다. 아마 맞을걸요...

+ 디렉터리의 심볼릭링크를 만들 수 있습니다.

+ 다른 디스크에 심볼릭링크를 만들 수 있습니다.

 

[사용]

// hard link
ln xxx yyy
// symbolic link
ln -s xxx yyy

하드링크, 심볼릭 링크 모두 ln 이라는 동일한 명령어를 사용해서 만듭니다. 다만, symbolic link 의 경우 -s 옵션을 줍니다. xxx 는 원본 파일을 의미하고 yyy는 새로 생성할 링크 파일을 의미합니다.

'개발 > linux' 카테고리의 다른 글

[기초편] Shell 이란?  (0) 2020.08.24
vi 사용법  (0) 2020.06.16
리눅스 명령어 약자 확인하기  (0) 2020.05.28
우분투 터미널 명령행에서 쓰던 단어, 행 지우는 단축키  (0) 2020.05.14
유용한 링크 모음  (0) 2020.05.10

man 이라는 명령어가 있습니다. manual 을 뜻하며 명령어 다음에 오는 인수에 대한 설명을 제공합니다. 이 man 명령어를 통해 특정 명령어가 어떤 이름의 축약인지 확인할 수 있습니다. 사용의 예는 아래와 같습니다.

:~$ man man
// an interface to the on-line reference manuals ...
:~$ man ls
// list directory contents ...
:~$ man pwd
// print name of current/working directory ...
:~$ man mv
// move (rename) files ...

물론 그렇다고 man 명령어로 모든 명령의 내용을 확인할 수 있는 것은 아닙니다. man 명령어로 확인이 가능하려면 보이고자 하는 메뉴얼을 프로그램 내부 어딘가에 man에서 규정하는 양식으로 작성해 놓아야 볼 수 있지 않을까? 생각합니다. 한 예로 change directory 를 뜻하는 cd 명령의 경우 man 명령으로 확인할 수 없습니다.

:~$ man cd
No manual entry for cd

'개발 > linux' 카테고리의 다른 글

vi 사용법  (0) 2020.06.16
하드링크, 심볼릭링크 개념 및 사용법  (0) 2020.06.02
우분투 터미널 명령행에서 쓰던 단어, 행 지우는 단축키  (0) 2020.05.14
유용한 링크 모음  (0) 2020.05.10
서문  (0) 2020.05.10

회사 친구 영진이의 요청으로 60만원대 컴퓨터를 맞춰보았습니다. 마비노기 영웅전이라는 게임을 하는 친구입니다. 인터넷 검색을 하니 60만원대는 인텔 i3-9100F 를 많이 추천하시더군요. 마영전 용으로 9100F를 사용하신 분도 있는것 같습니다. 대충 읽어보면 9100F로도 잘돌아간다는 것 같습니다. 잘하면 풀옵도 가능하다네요.

참조링크

 

마비노기영웅전 인벤 : 9100f rx570 쓰시는분 계신가요 - 마영전 인벤 자유 게시판

이 스펙에 옵션 어디까지 놓고 플레이할 수 있을까요?3500x-1660s 이조합으로 갈까 하다가 짜피 망전 롤밖에 안하는데 돈아껴서 현금술을 하는게 나으려나 싶습니다프리셋으로 걍 최상옵 놓고 돌��

www.inven.co.kr

마영전 사양입니다. 넥슨 홈페이지에서 확인 가능합니다.

 

CPU나 메인보드를 좀 업그레이드하고 오버도 해보고 싶어서 비교 영상도 보고 다나와도 찾아봤지만 금액대가 훅훅뛰더군요. 결국 아래 표대로 맞췄습니다. 유튜버 신성조님의 20년 4월 견적표 영상과(참조링크2) 정확히 일치합니다. ㅎㅎ 친구 요청으로 2테라 하드만 추가했네요.

참조링크2

총 금액은 택배비 5천원을 포함해서 624,600원입니다.

 

인텔은 CPU 장착부에 커버가 있다고 얘기는 많이 들었었는데 실제론 처음봤습니다. 고급져 보이더군요. CPU 무뽑을 방지하기위한 주변 가이드까지 참 좋은것같습니다. 라이젠도 저런식으로 바뀌었으면 좋겠네요. 무뽑이란, 검색을 해보니 컴퓨터 분해시 CPU 위에 쿨러를 뽑을 때 무가 뽑히는 것처럼 쿨러랑 CPU가 같이 뽑히는걸 말한다고 합니다. CPU가 뽑히면서 밑에 달린 숫 핀들이 부러지거나 휘는등 파손될 수 있다고 하네요.

이번에 사용한 케이스는 M7 SE 케이스로 처음 써보는 케이스인데 이전에 3RSYS 케이스로 두 번 조립해본게 도움이 됐는지 생각보다 조립이 수월한 느낌이 들었습니다. 만,,, 조립 끝내고 사진으로 다시보니 뒷 선정리가 생각보다 깔끔하진 않네요. 하려다 말려다 한듯한 느낌이랄까 ;; 아무튼 친구는 만족을 했고 물어보니 풀옵은 아예 시도도 안해봤지만 중상옵으로 하는데 전혀 무리없이 잘 된다고 하네요. 뿌듯합니다 ㅎㅎ.

2019년 12월 28일 토요일... 이 날은 제가 1년반의 고시원 생활을 청산하고 원룸으로 이사한 감격스러운 날입니다. :-) 총 전세금 4500만원에 인터넷비, 물세 포함 관리비가 매달 5만원입니다. 80% 중소기업청년전세대출로 3600만원을 받았고 그동안 직장생활을 하며 모은 돈에서 남은 900만원을 채워 방을 얻을 수 있었습니다. 대출 이자는 연 1.2%로 3600만원 * 1.2% / 12개월 = 3.6만원 입니다. 이유는 모르겠지만 실제 통장에서 나가는 돈은 36,600원에서 매달 백원단위로 조금씩 달라지네요. 5개월 정도 살아보니 전기세와 가스비가 각각 대충 1.5만원 안쪽으로 나오더군요. 집으로만 매달 지출하는 비용이 15만원이 채되지 않습니다. 방에는 신발장, 옷장, 냉장고, 에어컨, 세탁기, 가스레인지 등이 기본 옵션으로 있습니다. 고시원과 비교해 뛰어난 가성비를 자랑합니다. ㅎㅎ

 

중소기업청년전세대출이란?

"국토교통부가 주택도시기금을 활용해 2018년 6월부터 시작한 사업 상품으로 중소기업에 다니는 만 35세 이하(군복무자는 만 39세 이하), 연소득 3500만원 이하(외벌이 기준), 무주택 청년을 대상으로 전세금의 80% 또는 100%를 연 1.2% 이율로 최초 2년 계약에 4번 연장해 최장 10년간 대출이 가능한 상품" 

참고링크1

 

주택도시기금

주택도시기금 소개, 주택구입(내집마련디딤돌 등), 전세자금, 월세대출, 국민주택채권, 주택청약, 신혼부부대출

nhuf.molit.go.kr

참고링크2

 

<중소기업 취업청년 전월세보증금대출> 직접 받아봤다! (1탄) 대출상담편

#청년정책 #중소기업 #취업청년 #전월세보증금대출 #대출상담편

www.jobaba.net

참고링크3

 

10년 동안 이사 가지 말아라? 중소기업 청년 전세대출이 만든 '희비

‘중소기업 청년 전세자금대출’을 받은 청년들 사이에서 운영 방침을 개선해 달라는 호소가 나오고 있다. 현재 일부 상품의 경우 대출을 이용하다 이..

biz.chosun.com

 

위 표를 보면 전세자금대출을 해주는 기관이 HUG인지 HF인지에 따라 내용이 조금씩 다름을 알 수 있습니다. 사실 위 정보는 지금 글을 쓰면서 저도 처음봤는데요 (0_0). 참고링크3을 읽어보면 똑같이 80% 대출을 받는다는 가정하에 HF에서 대출 받는게 훨씬 좋아보입니다. 잘모르겠지만 저는 HUG에서 대출을 받은 것 같습니다. 대출할 당시 은행 직원분이 집을 먼저 계약하고와야 대출이 가능한지, 불가능한지 알 수있다고 했었거든요.(사실 목적물 상태를 보고 대출 가능한지 판별하는거면 그냥 집주소만 알면되는게 아닌지? 등기보면 집주인이 누구고 근저당이 어디에 얼마가 있는지 나올텐데 굳이 계약을 해야 심사가 되나? 하는 의문이 듭니다만... 까라면 까야죠. 옙. 다 나름의 이유가 있겠죠. ㅠㅠ) 내년이 되면 근무지가 또 바뀌는데 집을 바꿀 수 없다는건지... 물론 더 알아봐야겠지만 걱정이네요. 아무튼...

 

 

 집을 계약한다는건 계약금을 걸었다는건데 계약하고나서 심사 결과가 대출불가로 나오면 계약금을 잃게되니 계약할 땐 집주인 분과 얘기를 잘해야합니다. 다행히 저는 집을 구하던 시기가 비수기였고 남는 방이 많아서 대출심사 통과후 잔금낼 때 계약금까지 한 번에 지불하기로 구두상 약속하고 계약금 지불없이 영수증을 받았습니다. 하지만, 비수기가 아니었다면 집주인분이 계약금도 안걸고 대출심사기간을 기다려 주셨을지 의문이네요...

 

 

 

ps. 일반 전세대출 이자율을 넉넉히 4%로 계산해보면 4500만원 * 4% / 12개월 = 15만원입니다. 관리비와 공과금을 합하면 25만원이 되지않습니다. 물론 실제로 대출받으려고 알아봤을 때 추가 제약 조건이 있을 수도 있고 구하는 집의 전세금이 너무 비싸서 월 지출비용이 클 수도 있지만 현재 20%가 없어서 고시원을 선택한 분이 계시다면 일반 전세대출이 더 나은지 한 번 계산이라도 해보면 좋을 것 같습니다. (일반 전세대출에서 청년전세대출로 전환이 가능한지도 알아봐야겠죠.) 또는, 계약금 걸고 중소기업청년전세대출 심사중이신 분이라면 플랜B로 알아보는 것도 좋을 것 같습니다.

 

 

user@host:~$ man date|

위와 같이 명령으로 man date를 치고 엔터를 누르기 전 커서가 맨 뒤에 있는 상황에서

    * 바로 앞의 date 단어를 지우고 싶다면 Ctrl + w

    * 모든 입력을 지우고 싶다면 Ctrl + u

를 입력하면 됩니다. 사실 별거 아니고 되게 간단한 거지만 책을 읽기 전까진 모르고있었네요.

shift + home 이 안되서 많이 불편했지만 그냥저냥 잘살았었죠. 이젠 잘 지울 수 있습니다. ㅎㅎ

그냥 엔터를 연타하면 편하지만 위 단축키가 요긴하게 사용될만한 상황도 있겠죠? 어쨋든 아는 건 힘이니까요. :)

'개발 > linux' 카테고리의 다른 글

vi 사용법  (0) 2020.06.16
하드링크, 심볼릭링크 개념 및 사용법  (0) 2020.06.02
리눅스 명령어 약자 확인하기  (0) 2020.05.28
유용한 링크 모음  (0) 2020.05.10
서문  (0) 2020.05.10

* 만화로 보는 리눅스 역사 = "https://joone.net/"

* 커널 다운로드 = "https://www.kernel.org/"

* 리눅스 배포판 확인 = "http://futurist.se/gldt/"

 

'개발 > linux' 카테고리의 다른 글

vi 사용법  (0) 2020.06.16
하드링크, 심볼릭링크 개념 및 사용법  (0) 2020.06.02
리눅스 명령어 약자 확인하기  (0) 2020.05.28
우분투 터미널 명령행에서 쓰던 단어, 행 지우는 단축키  (0) 2020.05.14
서문  (0) 2020.05.10

https://www.hanbit.co.kr/store/books/look.php?p_code=B1192694090

 

IT CookBook, 우분투 리눅스(개정판)

시스템, 서버 및 네트워크, 보안까지 한 권으로 정복하는 우분투 리눅스

www.hanbit.co.kr

이전에 Chapter2의 Part7 까지 읽다가 접었던 책입니다. 항상 리눅스를 공부해야된다는 생각은 있었는데 생각만 있었죠...;; 실천이란 참 어려운 일입니다. 같은 이름의 책을 찾아보니 개정판이 나왔네요. 뭐 크게 차이가 있진 않을거라 생각합니다. 다시 한 번 정독하기 도전해봅니다!

+ Recent posts