안녕하세요

IT 운영자 분이시거나, 일반 사용자 분들 중에

업무 프로그램과 관련된 프로그램을 설치할 때, 확장자가 msi로 된 파일들을

흔히 보실 수 있습니다.

단순하게 설치만해서 사용하고 싶은데, 설치 자체가 잘 안 되는 경우가 발생하기 때문에

해당 내용 관련 해결 방안에 대해 말씀드려보려 합니다.

먼저, msi는 MicroSoft Installer의 약자로 윈도

MS의 환경에 맞춰 응용프로그램을 설치, 제거한다고 볼 수 있습니다.

msi파일 설치 관련 다양한 오류를 보실 수 있을 실 텐데, 그중 몇 가지 방안을 말씀드리도록 하겠습니다.

1. 권한이 부족하여 설치가 실패하는 경우

-msi 파일 설치 시, 설치 프로세스가 진행되다 권한이 부족하다(infficient  블라블라)하는 메시지를

보시는 경우가 있을 겁니다.

이 경우 두 가지 방법으로 해결이 가능할 것 같습니다.

(1).msi 파일 관리자 권한으로 실행

(2) cmd 관리자 권한으로 실행 후 해당 msi 파일 실행

 

2. 설치를 해도 아무 반응이 없는 경우

.msi 파일 설치 파일을 더블클릭도 해보고, 위의 방법으로 관리자 권한으로 실행을 해보아도

PC에서는 아무 반응이 없고, 설치가 되지 않는 경우도 확인하실 수 있을 것 같은데요.

해당 사항의 경우 보통 다른 msi설치 파일이 설치가 완료되지 않아, 

background에서 msi설치 관련 Windows 서비스가 동작하고 있기 때문에 반응이 없습니다.

이 경우 작업 관리자나 process explorer라는 응용프로그램을 통해, 

msiexec.exe라는 프로그램이 실행 중인 것을 확인할 수 있습니다.

해당 프로세스를 강제로 중지하시고, msi파일을 설치하시면 정상 설치되시는 것을 확인하실 수 있으실 겁니다.

 

3. msi설치 관련 서비스 재시작

msi 설치 파일이 실행되면, Windows installer서비스가 반응을 하게 됩니다.

서비스 탭에 들어가게 되면, 

Windows Installer라는 서비스를 확인할 수 있는데,

클릭해 보시면 해당 서비스의 역할을 상세히 확인하실 수 있습니다.

이 서비스 상태를 중지로 바꾸고, 시작 유형을 수동으로 바꿔주신 후

적용한 다음, msi 설치 파일을 설치해 주시면 해결되는 경우가 있습니다.

이 외에도 다양한 해결방법이 있습니다.

저는 보편적으로 이 세 가지를 해보았을 경우, 95%는 해결되었던 거 같습니다.

 

컴퓨터를 사용하다보면,

해당 컴퓨터의 사용자 계정이 어떤 권한을 가지고 있는지

보안 담당자, 보안 운영자, 보안솔루션 관계자라면 알아야 할 경우가 더러 있다.

이 경우 확인할 수 있는 여러 방법을 소개하도록 하겠습니다.

1. 제어판 > 사용자 계정 > 사용자 계정 > 계정 관리 

여기에 들어가게 되면 현재 사용자가 administrator(관리자 권한)을 가지고 사용하고 있는지,

user 권한을 사용하고 있는 지 확인 할 수 있습니다.

관리자 권한이 있으면 Administrator, 관리자 권한이 없을 경우 로컬계정만 표시됩니다.

그리고 해당 사용자의 권한을 변경하고 싶을 경우

계정관리 탭에서 > 계정 변경 > 계정 유형 변경에 들어가면 변경이 가능합니다.

변경을 위해서는 기존 사용자가 가진 계정의 권한이 administrators 그룹에 있어야 합니다.

 

2. 컴퓨터 관리를 통한 확인

컴퓨터 관리에 접속하는 방법

(1) 상태표시줄 왼쪽하단 윈도우 버튼 마우스 우클릭 > 컴퓨터 관리 선택

(2) 실행(win+r 키) > compmgmt.msc 입력 후 엔터

컴퓨터 관리(로컬) > 로컬 사용자 및 그룹 > 사용자 or 그룹 선택

- 사용자를 선택 했을 경우

해당 사용자 계정 더블 클릭 > 소속 그룹 

사용자 계정이 어느 그룹에 속해있는지 확인 하실 수가 있으며,

그룹을 추가해 줄 수 있습니다.

이 때 역시 마찬가지로 현재 OS 계정이 Administrator 권한을 가지고 있어야 합니다.

- 그룹을 선택 했을 경우

Administrators 그룹 더블 클릭 하게 되면,

현재 Administrator 권한을 가진 계정들이 보이게 됩니다.

계정에서 그룹을 추가했을 때와 반대로 해당 그룹에

계정을 추가하게 되면 administrator(관리자) 권한을 얻게 됩니다.

만약 사용자를 administrator 권한이 아닌 일반 사용자 권한으로 사용하게 해야 한다면,

Users 그룹에 사용자를 넣어 주고, administrators 그룹에서 빼주면 됩니다.

*팁 : Users 권한을 가진 사용자 PC에 원격으로 접속하기 위해서는

"Remote Desktop Users"권한을 가지고 있어야 원격접속이 가능해 집니다.

3. 명령어를 통한 권한 확인

(1) 관리자 권한 확인 명령어 

net localgroup administrators라는 명령어를 cmd에 입력하게 되면,

administrators 그룹에 속한 사용자 List를 확인 할 수 있습니다.

그리고 이 때 특성 사용자를 administrators 권한을 부여하고 싶다면,

net localgroup administrators <계정> /add 라고 입력하시면 됩니다.

반대로 권한을 빼고 싶을 경우에는 net localgroup administrators <계정> /del

이라고 쳐주시면 됩니다.

해당 명령어를 통한 권한 부여 및 삭제 시에는 cmd가 관리자로 활성화 되어 있어야 합니다.

 

(2) 일반 사용자 권한 확인 명령어

net localgroup Users라는 명령어를 cmd에 입력하게 되면,

Users 그룹에 속한 사용자 List를 확인 할 수 있습니다.

그리고 이 때 특성 사용자를 Users 권한을 부여하고 싶다면,

net localgroup Users <계정> /add 라고 입력하시면 됩니다.

반대로 권한을 빼고 싶을 경우에는 net localgroup Users <계정> /del

이라고 쳐주시면 됩니다.

.

.

.

글을 마치며

보안지침상 사용자의 권한제어는 필수로 이루어져야 한다고 생각하며,

현재 많은 금융권에서는 해당 사항처럼 계정의 권한에 대해 제어하고 있는 것으로 알고 있습니다.

우리나라의 경우 외국과 달리 PC를 받는 순간 부터 모든 사용자가 관리자 권한을 가지고 있기 때문에,

위험에 더 많이 노출되어 있다고 판단합니다.

자신의 PC를 보호하기 위해 어려운 암호를 설정하는 것도 중요하지만,

이처럼 권한 제어를 통해 외부의 침입을 막는 것 또한 중요하다고 생각합니다. 

 

 

 

 

 

 

내 PC에 내가 알 수 없는 새로운 파일이 생겼다던가,

누군가의 접속이 의심 되는 상황이 있을 수 있다.

이러한 상황에서 Windows는 자체적으로 로그라는 기록을 남기게 됩니다.

다양한 Windows내에 일어난 활동들에 대해 기록을 하게 되는데,

오늘은 접속 로그를 보는 방법에 대해 알아 보도록 하겠습니다.

로그를 조회하는 순서

이벤트 뷰어 실행 > 응용프로그램 및 서비스 로그 > Microsoft > Windows >

TerminalServices-LocalSessionManager > Opertaional 에서 확인 할 수 있습니다.

 

상세 설명 ( 이미지 첨부 )

1. 이벤트 뷰어 실행 방법 

- Win +R  > eventvwr 입력 후 엔터

- 검색 > eventvwr 또는 이벤트뷰어 입력

 

 

2. 응용프로그램 및 서비스 로그 선택

3. Microsoft > Windows >

TerminalServices-LocalSessionManager > Opertaional 에서 확인

아래의 이미지 처럼 접속이력에 대해 확인할 수 있습니다.

내가 내 PC에서 직접 접속할 경우, 원본 네트워크 주소는 LOCAL이라고 표시되며

다른 곳에서 내 PC에 접속을 했다면 x.x.x.x의 IP가 남게 됩니다.

추가적으로 event ID 25이 원격데스크톱 세션이 열린 것을 의미하며,

event ID 24는 원격데스크톱 세션을 종료한 것을 의미합니다.

 

내 PC또는 서버에 허용되지 않은 사용자가 접속을 했다고 의심이 되면, 

위의 방법으로 확인을 해 보는 것도 좋은 방법인거 같습니다.

요새 어플을 개발하시는 분이 많이 늘어나고 있는 것 같습니다.

 

어플을 개발 할 때 구글지도에 대한 정보나 권한을 가지고 오는 방법에 대해 알아보도록 하겠습니다.

 

https://developers.google.com/maps/documentation/android-api/

 

이 곳에 들어가면 키 가져오기라는 부분을 확인 하실 수 있습니다.

그리고 나서 아래의 화면과 같은 부분을 보시면 계속을 눌러 다음으로 진행할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

계속 버튼을 누르면 아래와 같은 화면을 보실 수 있습니다.

 

여기서 패키지 이름과 SHA-1인증서 지문에 대한 정보를 등록해야 구글 맵에 대해 받을 수 있습니다.

 

먼저 패키지 명은 자신이 안드로이드 스튜디오에서 프로젝트 생성시 정한 팩키지명을 적으시면 됩니다.

아래의 사진에서 보이는 것 처럼 매니페스트 파일에 들어가서 package 명을 확인 하실 수 있습니다.

 

 

이제 SHA-1 인증서 지문 만 남았습니다!!!!
인증서 받는 방법은 먼저 cmd창을 실행 시킵니다!!!

그리고 나서

Windows XP : C:\Documents And Settings\사용자 계정\.android

Windows Vista/7 : C:\Users\사용자 계정\.android

의 경로로 들어간 후에

 

keytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android

 

를 입력 하시면 다음과 같이 SHA-1을 얻을 수 있습니다.

 

 

여기서 얻은 SHA-1를 복사하여 구글 맵부분으로 가셔서 입력 해주시면 됩니다.

 

다음과 같은 방식으로 구글 맵 API_KEY를 받으실 수 있습니다.!!!!

 

Drawer Layout은 제가 사용하고 있는 앱 중에 네이버카페를 보면


 

 

 


                               
왼쪽 상단의 그림에 보시는 것과 같은 부분을 클릭하거나 특정이벤트에 따라

  최신 글보기 카페태그 등의 다양한 정보를 쉽게 볼수 있는 UI를 제공하는 것인데,

  이 것을 Navigation Drawer 라고 합니다.


그렇게 되면 오른쪽과 같은 그림의 메뉴가 나왔다 사라졌다 하는 것을 볼 수 있게 됩니다.


Navigation Drawer를 사용하기 위해서는 FrameLayout을 이용하여 설정을 하여 만들어 주면 됩니다.

다음과 같이 설정해 주시면 됩니다.

 

 


다음은 활용하는 소스 코드 부분 입니다.

 

 

 

 


이와 같은 방법으로 코드를 작성하고 실행하면 다음과 같은 화면이 나오는 것을 확인하실 수 있습니다.

 왼쪽의 짙은 옅은 초록색 부분이 navigation drawer 부분에 해당하며 green이라는 메뉴를 선택하면

오른쪽 그림과 같은 화면으로 바뀌고 다른색상을 선택시 해당색상으로 바뀌는 걸 확인하 실 수 있습니다.

 

 

 

 


                                                       

소스가 필요하신 분들은 쪽지나 댓글을 주시면 보내드리겠습니다.

 

안드로이드에서 액티비티란, 쉽게 말해 "활성화" 라는 의미이고,


하나의 화면의 활성화 여부를 관리하는 객체라 할 수 있다.

자세한 사항은 다시 또 공부할 때에 정리해야지...

이러한 액티비티의 생명주기에 대한 기초지식에 대해 알아보도록 하자.

액티비티의 생명주기란?


화면에 액티비티가 무언가를 보여주기 위해 호출되는 메서드라고 할 수 있습니다.


예를 들어, 카X오톡 같은 애플리케이션에서 대화방을 클릭했을 때, 자신이 선택한 채팅방을 띄워주는 것이라 할 수 있습니다.

액티비티의 생명주기는

onCreate()  -> onStart() ->onResume() ->onPause() -> onStop()  -> onDestroy() 의 순으로 이루어져 있습니다.

들어가면 이와 같은 그림을 확인할 수 있을 것입니다.

 

 


먼저 onCreate()란 무엇인지 알아보자.

onCreate()는 Activity가 메모리에 최초에 생성될 때에 호출되는 메서드입니다.

​이 당시에는 사용자가 육안으로는 볼 수 없습니다.

이다음 호출되는 메서드는  onStart() 메서드입니다.

이 메서드는 생성된 Activity가 화면에 보이려 할 때 호출되는 메서드로써

사용자에게는 보이지만 실제로 Activity는 start 메서드에 머무르지 않고

바로 그다음 단계인 onResume()을 실행시킵니다. 

onResume() 메서드는 Create 이후에 start 바로 뒤따르며,

Activity 내에서 사용자가 다른 Activity를 호출하거나 전화가 오는 상황 같은 일이 발생 전까지는 Resume 상태로 유지가 되는 것을 말하며, 사용자로 부터 입력을 받을 수 있는 시점에 호출되는 메서드 입니다.


 

 

 

 옆에 보시는 그림을 주황색 Activity라고 가정 했을 경우

 사용자에게 주황색 Activity가 보여지기 까지의 과정을

 onCreate()->onStart()-> onResume() 이라고 할 수 있습니다. 

다음onPause() 메서드 입니다.

onPause()메서드는 위에서 언급한 바와 같이 전화가 오거나 사용자에 의해서 다른 Activitiy가 선택 되었을시에 다른 Activity가 화면의 일부를 가리며 두 개의 화면이 공존하는 상태에서 호출되는 메서드 입니다.

onPause()가 일어남과 동시에 onStop() 메서드가 실행 됩니다.

onStop()메서드는 다른 Activity에 의해 원래 실행되던 Activity가 가려져서 화면에 보이지 않게 되는 시점에 호출되는 메서드 입니다.

onStop()에서 사용자가 원래의 Activity로 돌아갈 경우에는 onRestart() 메서드와 onStart() 메서드에 의해

초기 Activity로 돌아갈 수 있습니다.

마지막으로 언급할 메서드는 onDestroy() 메서드 입니다.

 이 메서드는 Activity가 소멸 되려 할 때 호출되는 메서드로,

 사용자가 어플리케이션을 종료하거나, onCreate() 메서드에서 finish()함수를 호출하는 경우에 사용되는 메서드 입니다.

​ 

옆에 보시는 것과 같은 그림을 가지고 설명해 드리겠습니다.

최초 주황색 Activity에서 다른 Activity인 초록색 Activity가 실행 되었을 때,

onPause()에 의해 초록색과 주황색 Activity가 공존할 수 있습니다.




 

이 그림은 onStop()메서드의 예시입니다.

  최초 주황색 Acitivity는 사라지고,

사용자가 실행시킨 또는 전화가와서 실행된 새로운 Activity가 보여지는 부분으로,

주황색 Activity의 상태는 멈춤상태가 되는 것입니다.



글쓰는건 참어렵지만....혼자 여림히 공부한다는 생각으로...하나둘씩 게시해 나가겟쓰요!!!!!

+ Recent posts