기술사 공부를 시작할때 학원과 독학의 길이 있는데 공부를 앞두고 고민하는 분들이 있을 것이다.

결론부터 말하지만 가능하면 학원을 선택하는게 시간과 비용이 적게 드는 길이다.

 

독학과 학원이 어떤 차이가 있는지 알아보자. 시간, 비용, 스터디 측면에서 살펴보겠다.

 

먼저 시간 측면에서 보면,

독학은 합격까지 얼마나 걸릴리 예측할 수 없다.

예전에 멘토한테서 5년 걸려서 합격하신분이 있다고 들었다.

예전에 같은 빌라에 살았던 분도 독학으로 합격한 사례가 있다. 

 

독학은 일단 공부할 자료를 수집하는 것부터 시간을 잡아먹는다.

인터넷에 공부할 자료는 많지만 데이터를 수집하고 과목별로 분류하고 정제하는 작업이 필요하다.

아마 수주는 걸릴 것같다. 여러분이 기술사 공부에 할당할 수 있는 시간은 일주일에 40~50시간 정도이다.(직장인 기준)

회사 그만두고 공부하는 바보같은 선택은 하지 않길 바란다. 그런다고 빨리 합격한다고 장담할 수 없다.

자료 수집이 끝나면 어떻게 공부해야하는지를 배워야한다. 토픽을 암기하고 이해하고 답안작성하는 법을 배워야한다.

작성한 답안이 합격할만한 수준까지 도달하는데 긴 시간이 걸릴 것이 분명하다.

공부하면서 모르는게 생기면 또 자료를 찾아보아야 한다.

 

학원은 합격자 통계를 낼 수 있다. 빠르면 6개월이고 늦어도 4년이면 합격하는 것 같다. 보통 2년이면 된다.

자료는 이미 충분하며 스터디 시작할때 모두 제공된다.

또한 공부법을 알려주고 1~2주 단위로 한 과목씩 학습하고 간단한 모의고사를 본다. 월단위로는 학원 자체 모의고사가 있다.

모의고사를 통해서 본인의 실력(답안의 수준)을 가늠할 수 있고, 다른 사람이 작성한 답안을 모방하면서 배울 수 있다.

모르는게 생기면 멘토한테 물어보거나 스터디 멤버한테 물어볼 수 있다.

 

합격하는 나이가 늦어질수록 자격증의 가치는 감소한다. 

정보처리기사 취득한 3년차 정도 경력자가 시도하면 베스트가 아닐까한다.

 

둘째 비용 측면에서 보면,

학원비가 백수십만원가량 하니 아무래도 부담스럽다고 생각할 것이다. 

독학이 학원비 항목이 없기때문에 돈이 적게든다고 생각할 것이다.

하지만 시간은 생각보다 큰 비용이다. 나는 보통 내 월급을 기준으로 한시간의 비용을 계산한다.

한시간의 비용을 만원으로(최저시급) 보고 비용을 따져보자.

독학할때 자료를 모으고 공부하는 법을 익히는데 한달정도 걸린다고 가정하자.

일주일에 40시간을 공부한다면 한달이면 160시간, 비용은 160만원이다. 학원비랑 비슷하다.

학원은 모의고사가 무료이다. 독학은 이것을 돈주고 봐야한다. 몇만원 한다.

 

독학이든 학원이든 공부할 장소가 필요한데 기혼자라면 아마도 독서실에 다녀야 할 것이다.

독서실이 요즘은 프리미엄이라 1인실이 한달에 20만원이 넘는다.

미혼이라면 집에서 공부하면 되니 비용도 덜들고, 신경써줘야하는 가족도 부모형제 정도이니 공부할 시간도 더 확보된다.

 

셋째 스터디 측면에서 보면,

독학도 공부하는 사람끼리 스터디를 구성할 수는 있다. 독학하는 사람 찾기도 힘들테고 중요한 것은 멘토가 없다.

학원은 스터디 반에 멘토 기술사님이 있다.

이분의 역할이 공부할 스케줄을 관리해주고, 공부하는 법을 알려주며, 작성한 답안에서 개선할 점을 알려준다.

학원 스터디는 같이 공부하는 멤버들과 토론을 통해 지식을 공유할 수 있다.

이분들도 모두 어떤 분야의 전문가들이다.
아마 메타인지 학습에 대해서 들어봤을 것이다. 다른 사람에게 설명하면서 자신의 알지못하는 것이 명확해진다. 이것을 보완하면서 점차 완전해지는 것이다. 스터디를 통해 이렇게 학습할 수 있다.


기술사 학원은 대표적으로 아래 3개의 학원이 있다. 위치는 다 서울이다. 응시생 자체가 많지 않은 편이라 지방에는 없는 것 같다.
같이 스터디했던 분도 지방에서 KTX를 타고 다니면서 공부해서 합격했다.

L(라이지움): 강남역 번화가 골목 옆
I(아이리포): 디지털미디어 시티역 부근
K(한국생산성본부): 경복궁역

나는 처음에 다른 학원에서 시작했다. 그 당시에는 비용이 가장 큰 결정요인이었기 때문에 저렴한 곳으로 등록했다.

좌절해서 잠깐 쉬기도 하고, 스터디멤버가 줄어들면서 혼자가 되기도 했다.

그래서 독학을 시작했다. 그런데 혼자 공부하면 가장 안좋은 점이 앞에서도 언급했지만 나의 수준을 모른다는 것이다.

나의 수준을 확인하려면 학원모의고사를 한달에 한 번 보면서 멘토링을 받거나

실전시험에서 점수로만 추정할 수 있을 뿐이다.

결과는 좋지 않았다. 여러번 시험을 봤으나 57점이 최고 득점이었다.

 

그러다가 마지막 도전이라 생각하고 와이프와 상의해서 학원을 등록하기로 했다.

K학원을 결정한 것은 합격자도 많고 집에서 거리도 적당해서였다.

합격자 수가 많은 것은 수험생이 많으니 당연한 것이니 참고만 하자. 합격자가 전혀 없는 곳은 좀 그렇다.

 

K학원에서 2개의 반(두 분의 멘토)에서 스터디를 진행했다.

첫번째 반에서는 물어본 질문에 충실히 답안을 작성해서 적게쓰고 점수를 받는 법을 터득했다.

이전에는 오로지 양으로 승부했다. 물어보지 않은 것도 추가를 많이 했었다. 

불합격을 하고 다시 등록하려다 보니 반이 좀 바뀌었다..

두번째 반은 카페 게시판에서 스터디 반에 대한 설명을 보고 무언가 확 와닿아서 선택을 했다.

합격하기 위한 계획이 필요하다는 것을 깨달았다. 구체적인 멘토링과 함께...

결국 합격을 하게 되었다.

 

나는 1개의 학원만 다녔기때문에 학원간 장단점을 알 수는 없다.

다만 학원의 위치(환경, 집에서 거리), 스터디반(멘토, 합격자수), 비용 등이 결정하는데 고려해야할 요인이다.
개인적으로 수강생 규모가 좀 있는 학원이 좋다고 생각한다.

스터디반에도 여러 분야의 전문가들이 구성될 수 있고, 서로 정보공유도 하고 인맥도 늘어나니 좋은 점이 많다.

그리고 필기에 합격한 후에 2차 면접을 준비하는데 이력카드 작성에서부터 모의면접까지 도움을 받을 수도 있다.

독학으로 했다면 정말 힘들지 않았을까 생각한다.

 

독학이든 학원이든 열심히 공부해야 한다.

나는 기술사 공부할때 명절, 부모님 생일에도 집에 내려간적이 없다. 시험이 끝나고 여유가 있을때 방문했다.

아이가 돌을 막 지났을때 시험을 한달 앞두고 고시원에 들어가서 공부를 하기도 했다.

기혼자가 공부를 하는 것은 가족(배우자와 아기)의 희생이 불가피하다. 이 희생의 시간을 가능한 빨리 줄이려고 노력해야 한다.

독학할때 합격은 안되고 아이는 자라는데 아빠를 거의 보지 못하는 날이 많았다. 같이 놀아주지 못하는게 미안할 따름이었다.

3살무렵에는 아이와의 유대감 형성을 위해 공부를 잠시 중단한 적도 있었다. 

 

본인의 여건이 되면 가능한 학원을 선택하고 여의치 않아 독학을 하게 된다면 합격 플랜을 잘 세우고 독하게 공부해야 한다.

빨리 취득하는게 모두에게 좋은 일이다.

 

참고: 본인의 기술사 학습 루틴

lumasca.tistory.com/917

 

기술사 학습 루틴

기술사를 학습을 처음하는 분들은 아마 어떻게 공부를 할지 막막할 것이다. 학원에서도 구체적으로 알려주지는 않는다. 기술사 합격자들의 후기를 통해서 어느정도 파악은 가능하다. 합격으로

lumasca.tistory.com

 

Posted by Lumasca
,

scale: 뷰의 크기을 조절하여 심장이 뛰는 것처럼 커졌다  작아졌다하는 것과 같은 효과를 낼 수 있다.

android:duration 은 애니메이션 적용시간이며, 밀리세컨드 단위이다.
android:fromXScale 은 X축의 시작시점 크기이다.
android:fromYScale 은 Y축의 시작시점 크기이다.
android:pivotX 은 X축 중심점 좌표이다.
android:pivotY 은 Y축 중심점 좌표이다.
android:toXScale 은 X축의 종료시점 크기이다.
android:toYScale 은 Y축의 종료시점 크기이다.

 

X축는 수평방향, Y축는 수직방향이다.

1.0은 변경이 없다는 의미이다.

 

res/anim 폴더에 bounce_circle.xml 로 아래와 같이 작성한다.

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXScale="1.0"
    android:fromYScale="1.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toXScale="0.6"
    android:toYScale="0.6" />

 

위에서 작성한 애니메이션을 적용해 반복해서 바운스 효과를 내는 코드

val aniBounce = AnimationUtils.loadAnimation(mContext, R.anim.bounce_circle)
val interpolator = BounceInterpolator()
aniBounce.interpolator = interpolator
aniBounce.repeatCount = Animation.INFINITE
aniBounce.repeatMode = Animation.REVERSE
        
imgCircleBounce.startAnimation(aniBounce)

interpolator: 애니메이션 효과를 가속하거나 감속 또는 반복하는등 여러가지 효과를 낼 수 있다. BounceInterpolator를 주어서 심장이 뛰는 것과 같은 효과를 주었다.

참고: https://developer.android.com/guide/topics/resources/animation-resource#Interpolators

 

애니메이션 리소스  |  Android 개발자  |  Android Developers

애니메이션 리소스는 다음 두 가지 유형의 애니메이션 중 하나를 정의할 수 있습니다. 속성 애니메이션 설정된 시간 경과에 따른 객체의 속성 값을 Animator로 수정하여 애니메이션을 만듭니다. ��

developer.android.com

repeatCount는 반복회수인데 Animation.INFINITE(-1)로 설정하면 무한 반복이다. 또는 양의 정수로 설정한다. 0은 반복없음으로 한번 효과를 내고 끝나며, 1은 효과를 한번더 반복하는 것이다.

repeatMode는 repeatCount가 INFINITE여야 한다. 반복할때 애니메이션을 역방향으로 적용하려면 REVERSE를, 처음 위치부터 다시 적용하려면 RESTART를 적용한다.

fillAfter: 애니메이션 종료후에 상태를 설정한다. true는 종료후에 변형을 유지한다. false는 종료후에 변형을 유지하지 않고  원래대로 복원한다.

fillBefore: 애니메이션 시작전에 상태를 설정한다. true는 시작전에 변형을 적용한다. false는 시작전에 변형을 적용하지 않는다.

 

translate : https://lumasca.tistory.com/609

 

 

 

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

Android Studio Firebase Crashlytics 설정  (0) 2020.05.13
반원(half circle) xml  (0) 2020.05.11
Android Animation translate  (0) 2020.05.08
google service 빌드 오류  (0) 2020.05.04
오류: Cannot inline bytecode built with JVM target 1.8 ..  (0) 2020.01.07
Posted by Lumasca
,

translate: 뷰를 왼쪽, 오른쪽, 위, 아래로 이동하는 효과를 낸다.

 

 fromXDelta : X축의 시작 위치
 toXDelta : X축의 종료 위치
 fromYDelta : Y축의 시작 위치
 toYDelta : Y축의 종료 위치 

 

설정 값의 범위

-자신을 기준으로 -100 ~ 100 의 '%'로 끝나는 값: '100%'

-상위요소를 기준으로 -100 ~ 100 의 '%p'로 끝나는 값: '100%p'

-부동소수점(절대값)

 

이미지뷰가 위아래로 반복해서 움직이면서 오른쪽에서 왼쪽으로 부모 뷰의 절반 정도 이동했다가 다시 오른쪽으로 이동해서 멈추는 효과

 

투명도를 적용한 이미지뷰를 바운스를 시킬 것이고

해당 이미지뷰를 감싼 레이아웃은 수직으로 움직을 것이다. height가 wrap_content이다.

그리고 수직으로 움직이는 레이아웃을 감싸서 수평으로 움직일 것이다. width가 wrap_content이다.

최상위 레이아웃은 gravity 은 설정하지 않는다.

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >

        <LinearLayout
            android:id="@+id/layoutCardCircleHorz"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            >
        <RelativeLayout
            android:id="@+id/layoutCardCircleVert"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical">

            <ImageView
                android:id="@+id/imgCircle"
                android:layout_width="44dp"
                android:layout_height="44dp"
                android:layout_centerInParent="true"
                android:src="@drawable/btn_login_bn"
                />

            <ImageView
                android:id="@+id/imgCircleBounce"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:alpha="0.2"
                android:layout_centerInParent="true"
                android:background="@drawable/circle_yellow" />
        </RelativeLayout>
    </LinearLayout>
    </RelativeLayout>

repeatCount는 반복회수인데 Animation.INFINITE(-1)로 설정하면 무한 반복이다. 또는 양의 정수로 설정한다. 0은 반복없음으로 한번 효과를 내고 끝나며, 1은 효과를 한번더 반복하는 것이다.

repeatMode는 repeatCount가 INFINITE여야 한다. 반복할때 애니메이션을 역방향으로 적용하려면 REVERSE를, 처음 위치부터 다시 적용하려면 RESTART를 적용한다.

//위아래 반복 애니메이션
val animUpDown = TranslateAnimation(
                Animation.RELATIVE_TO_PARENT,0f,
                Animation.RELATIVE_TO_PARENT, 0f,
                Animation.RELATIVE_TO_PARENT, -0.2f,
                Animation.RELATIVE_TO_PARENT, 0.2f)
animUpDown.duration = 300
animUpDown.repeatCount = Animation.INFINITE
animUpDown.repeatMode = Animation.REVERSE

layoutCardCircleVert.startAnimation(animUpDown)

//왼쪽으로 이동 애니메이션
val aniLeft = TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_PARENT, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, -0.4f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f)
//RELATIVE_TO_PARENT(상위요소기준), RELATIVE_TO_SELF(자신), ABSOLUTE(절대값)
aniLeft.duration = 2000 //애니메이션 적용시간

//오른쪽 이동 애니메이션
val aniRight = TranslateAnimation(
                TranslateAnimation.RELATIVE_TO_PARENT, -0.4f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f)
        aniRight.duration = 2500
        
        aniLeft.setAnimationListener(object : Animation.AnimationListener{
            override fun onAnimationEnd(animation: Animation?) {
                //왼쪽이동이 끝나면 오른쪽으로 이동 애니 시작
                layoutCardCircleHorz.startAnimation(aniRight)
            }

            override fun onAnimationStart(animation: Animation?) {

            }

            override fun onAnimationRepeat(animation: Animation?) {

            }
        })

        aniRight.setAnimationListener(object: Animation.AnimationListener{
            override fun onAnimationEnd(animation: Animation?) {
                //오른쪽 이동이 끝나면 위아래 반복 중지
                layoutCardCircleVert.clearAnimation()
                //바운스 시작
                imgCircleBounce.startAnimation(aniBounce)
            }

            override fun onAnimationStart(animation: Animation?) {

            }

            override fun onAnimationRepeat(animation: Animation?) {

            }
        })
//왼쪽 이동 애니 시작        
layoutCardCircleHorz.startAnimation(aniLeft)


scale이용한 바운스 효과: https://lumasca.tistory.com/610

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

반원(half circle) xml  (0) 2020.05.11
Android Animation scale  (0) 2020.05.08
google service 빌드 오류  (0) 2020.05.04
오류: Cannot inline bytecode built with JVM target 1.8 ..  (0) 2020.01.07
Android Studio Configuration이 없을때..  (0) 2020.01.04
Posted by Lumasca
,

Gradle에서 buildType별로 패키지명을 다르게 구성한다면 google service 관련 빌드 오류가 발생한다.

 

google-service.json 파일을 빌드타입별로 해당 경로에 복사를 한 후에

 

google-service.json 의 "package_name" 작성된 패키지명을 변경해주면 된다.

Posted by Lumasca
,

1.PC에 아이폰을 연결하고 아이튠즈를 실행한다.

2.전원버튼을 길게 눌러 아이폰 전원을 끈다. (연결하기전에 끄지 않는다. 연결하면 전원이 켜진다.)

3.폰 우측상단의 전원(슬립) 버튼과 아래의 홈버튼을 동시에 10초간 누른다.

4.바로 전원이 켜졌다가 몇초가 경과하면 화면이 꺼진다.

5.다시 사과모양 화면이 뜨면 전원버튼에서 손을 땐다. 홈버튼은 계속 누르고 있는 상태다.

6.아이폰 복구모드 창이 뜨면 홈버튼에서 손을 땐다.

7.아이튠즈 팝업이 나타나는데 '업데이트'말고 '복원'을 선택한다.

8.아이튠즈의 'iPhone 초기화' 버튼을 클릭하면 iPhone 복구를 진행한다.

 

복원할 소프트웨어가 PC에 없는 경우 다운로드를 하는데 오래 걸린다. 40분이상 소요되었다. 

아이튠즈 우측상단의 아래화살표 모양 아이콘을 클릭하면 'iPhone 소프트웨어 업데이트'가 진행중인 것을 알 수 있다. 

이때 일정 시간(수분) 경과하면 핸드폰 복구모드가 종료된다.

 

소프트웨어 다운이 완료되면 1번부터 다시 시도해야한다.

 

 

 

 

 

 

 

'IT Others' 카테고리의 다른 글

삼성 갤럭시 푸쉬 광고 제거  (0) 2020.11.05
Docker기반 SonarQube 구성(Android Studio Gradle)  (0) 2020.06.22
다우오피스 메신저 MacOS에 설치  (0) 2020.01.14
MacOS Disk 사용량  (0) 2020.01.06
삼성TV 앱 삭제  (0) 2020.01.04
Posted by Lumasca
,

git config

개발/개발도구 2020. 3. 27. 14:39

config 목록

$git config --list

 

config 설정

$git config --global user.name "이름"

$git config --global user.email "xxx@xxx.com"

 

 

 

 

Posted by Lumasca
,

git checkout 할때 신규 브랜치인 경우 안되는 경우가 있다.

 

리모드 브랜치 최신정보로 업데이트한다.

$git remote update

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

git config  (0) 2020.03.27
Jenkins 빌드후 이벤트 Publish over SSH 설정  (0) 2020.03.11
Jenkins Plugin Manager SSLHandshakeException  (0) 2020.03.10
Git remove pushed file  (0) 2020.02.18
Git undo push  (0) 2020.02.17
Posted by Lumasca
,

 

1.메인 자바 파일을 컴파일한다.

$javac Main.java

 

2.매니패스트 파일을 생성한다. Main은 클래스명

$echo Main-Class: Main > MANIFEST.MF

 

3.매니패스트 및 빌드한 클래스 파일들을 jar에 추가한다.

$jar cvmf MANIFEST.MF main.jar *.class

 

4.Jar 파일을 실행한다.

$java -jar main.jar

 

 

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

Mac 키보드 키 매핑 앱 - Karabiner  (0) 2021.07.02
Github commit  (0) 2020.01.03
MySQL Config  (0) 2017.07.04
파이어폭스 한글입력 오류  (0) 2016.09.13
PHP for IIS 설치  (2) 2009.11.22
Posted by Lumasca
,