'Develop > DB - mssql' 카테고리의 다른 글

table 조각모음  (0) 2020.07.03
작업 스케줄러 일일체크 쿼리  (0) 2020.06.15
DB 조각모음  (0) 2020.05.18
mssql 계정 비밀번호 변경  (0) 2018.05.29
MSSQL 키보드 단축키 설정  (0) 2018.05.16


'Develop > DB - mssql' 카테고리의 다른 글

작업 스케줄러 일일체크 쿼리  (0) 2020.06.15
Index 조회 쿼리  (0) 2020.06.15
mssql 계정 비밀번호 변경  (0) 2018.05.29
MSSQL 키보드 단축키 설정  (0) 2018.05.16
프로시저 작성 시 필수 코드  (0) 2018.04.16

1. 잠금(Lock)의 개념

  데이터에 잠금(Lock)을 건다고 하면 언뜻 생각하기엔 데이터가 들어있는 방에 들어가지 못하게 방문을 걸어 잠근다는 느낌이 들지만, 사실은 방문에 "이 방에는 U-Lock이 걸려있음" 이라고 써 붙이는 개념에 가깝다.
  그 방에 누군가 SELECT를 시도한다면, 시도하는 사람은 그 방에 또 "S-Lock이 걸려있음"이라고 써붙이게 되는데 이때 이전에 걸려있던 "U-Lock"과 지금 걸려고 시도하는 "S-Lock"의 호환성을 비교하게 된다. 다행히도 "U-Lock"은 "S-Lock"과 호환되므로 "S-Lock"을 걸 수 있게 되고, SELECT에 성공하게 된다.
  만약 누군가가 그 방에 UPDATE를 시도한다면 그 사람은 그 방에 U-Lock을 걸려고 시도하겠지만 U-Lock은 U-Lock과 호환되지 않으므로 Lock을 걸지 못하고 기다리게 된다. 말하자면 이 Update시도는 기존 트랜잭션이 끝날때까지 "Block"되게 되는 것이다.

  걸어잠그는 것과 걸어잠갔다고 써붙이는 것이 무슨 차이가 있냐고?

  이 방에 들어있는 Data에 접근할 때는 서로간의 약속이 되어 있다. 예를 들면 "Select를 시도할 때는 S-Lock을 걸어야 한다"라던지... "X-Lock이 걸려있을 때는 S-Lock을 걸 수 없다"라던지... 뭐 이런 약속들이다. 그런데 만약 이 약속을 어기는 사람이 있다면 어떻게 될까? 위에서 언급했듯이 실제로 방 문을 걸어잠그는 것이 아니기 때문에 약속을 무시하는 사람은 방에 마음대로 들어갈 수 있게 된다. 예를 들어서... 이미 X-Lock이 걸려있는 Row에

SELECT * FROM TEST_TAB WHERE ID=3을 시도하면 BLOCK되겠지만
SELECT * FROM TEST_TAB WITH (READUNCOMMITTED) WHERE ID=3를 시도하면 Data를 읽을 수 있게 된다. (WITH (READUNCOMMITTED) 라는 잠금 힌트는 Select할 때 S-Lock을 걸지 말라는 의미이다.)

현재 걸려있는 Lock을 확인하려면

EXEC SP_LOCK
을 실행하면 된다. 만약 특정 세션의 Lock 상태를 확인하려면 세션 ID를 인자로 주면 된다.
EXEC SP_LOCK @@spid

2. 잠금의 세기
  잠금의 "세기" 라는 것은 여러가지 종류의 Lock들 간의 "호환 관계"라고 정리할 수 있다. S-Lock과 U-Lock이 "호환된다"라 함은 "S-Lock"이 걸려있는 상태에서 제 3의 세션에서 그 데이터에 "U-Lock"을 걸 수 있다는 의미이다.

 

2.1 공유 잠금 (Shared-Lock, S-Lock)

  공유잠금은 가장 낮은 강도의 잠금으로서, 일반적으로 Select를 할 때 공유잠금이 발생하며, Select가 완료되는 즉시 공유잠금은 해제된다. (트랜잭션이 완료되기 전이더라도 Select 완료 시점에서 잠금이 해제된다는 것이 중요하다.) 공유잠금은 서로 다른 공유잠금과 호환된다. 이 말은 바로 동일한 데이터를 서로 다른 세션에서 동시에 Select할 수 있다는 의미이다. 반면에 공유 잠금은 배타적잠금과는 호환되지 않는데 이 의미는 다른 트랜잭션에서 Update를 수행한 레코드(Uncommitted Data)에 대해 Select를 할 수 없다는 의미로 해석하면 된다.

 

2.2 배타적 잠금 (Exclusive-Lock, X-Lock)

  배타적잠금은 가장 높은 강도의 잠금으로서, Update가 행해진 시점부터 그 트랜잭션이 Commit될 때까지 배타적 잠금이 걸린다. 배타적 잠금은 다른 모든 종류의 잠금과 호환되지 않는다. 이 의미는 어떠한 약한 잠금이라도 걸려있는 레코드에 대해서는 Update가 불가능하며, 반대로 Update가 진행중인 레코드에 대해서는 Select를 포함한 어떠한 작업도 불가능하다는 의미가 된다.

 

2.3 업데이트 잠금 (Update-Lock, U-Lock)

  업데이트잠금은 공유잠금과 배타적잠금의 중간 강도의 잠금이다. 공유잠금과는 호환되지만 다른 업데이트잠금이나 배타적 잠금과는 호환되지 않는다. 일반적으로는 Update의 Filter(Where절)가 수행되는 단계에서 업데이트 잠금이 걸리며, Filter된 결과에 대해 실제로 Update를 시도할 때 업데이트잠금은 배타적 잠금으로 전환된다. (만약 테이블에 인덱스가 없거나 Where절이 인덱스를 탈 수 없게 되어 있다면, 테이블을 풀스캔하면서 모든 레코드에 업데이트잠금을 걸 것이다.)

  업데이트잠금은 잠금힌트를 통해 업데이트문이 아닌 Select문에도 걸 수 있다. 보통 컨버젼 데드락을 방지하기 위해 Select문에 업데이트 잠금을 거는 경우가 많다.

SELECT ColA, ColB FROM TAB_NAME WITH (UPDLOCK) WHERE ColA = 'AA'

 

 

3. 잠금의 크기

3.1 잠금의 크기

  잠금의 크기라 함은 어느 정도의 범위를 잠글 것인가에 관한 이야기이다. 대체로 Row Lock (Key Lock), Page Lock, Table Lock 정도가 있다.

  "잠금 비용"이란 잠금을 거는 과정에서 발생하는 성능 손실을 말한다. 만약 Lock을 걸어야 할 페이지가 너무 많다면, 차라리 Table 전체에 Lock을 거는 것이 "잠금 비용"이 훨씬 낮을 것이다.

  "동시성 비용"이란 잠금을 걸면서 동시성이 낮아져서 발생하는 성능 손실을 의미한다. Page Lock 여러개를 Table 하나로 대체하였다면 "잠금 비용"은 낮아지겠지만 대신 "동시성 비용"은 높아질 것이다.

  SQL Server는 "잠금 비용"과 "동시성 비용" 간에 균형을 적절히 고려하여 잠금의 범위를 결정하게 된다. 일반적으로 약 40%의 페이지에 Lock을 걸어야 한다면 테이블 Lock으로 대체된다고 한다

  잠금의 크기를 줄이기 위해서는 적절한 인덱스를 사용하는 것이 중요한데, 인덱스를 타지 못하여 Table Full Scan이 발생한다면 업데이트할 데이터를 찾는 과정에서 테이블 전체에 Lock을 걸게 되기 때문이다.

 

3.2 내재된 잠금 (Intent-Lock)

  내재된 잠금은 앞의 세가지 잠금과는 약간 다른 차원의 이야기이다. 내재된 잠금을 이해하기 위해서는 "잠금의 크기"를 먼저 이해해야 한다. 

  만약 세션1에서 어떤 Row에 잠금을 걸었다고 가정하자. 그 상태에서 세션2에서 그 Row가 속한 테이블 전체에 테이블잠금을 걸려고 시도하면 어떻게 될까? 당연히 테이블잠금이 걸리면 안된다. (만약 테이블락을 걸 수 있다면 세션1은 레코드잠금을 건 상태에서 다음 작업을 못한 채 꼼짝도 못하게 될 것이다. )

  그렇다면, 세션2는 어떻게 이 테이블의 Row 중 하나에 락이 걸려있다는 것을 알 수 있을까? 테이블에 락을 걸기 전에 모든 페이지와 모든 Row를 다 조사해야 할까? 실제로 SQL Server는 그 반대로 구현되어 있다. 즉, 세션 1이 그 Row에 업데이트 잠금을 걸 때, 해당 레코드가 속한 상위 페이지와 상위 테이블에 내재된 잠금을 함께 걸게 된다. 이렇게 함으로서 세션 2는 테이블에 락을 걸기 전에 해당 테이블만 확인해보면 락을 걸어도 될지를 결정할 수 있게 된다.

내재된 잠금은 IX, IU 와 같이 표기한다. (Intent Exclusive Lock, Intent Update Lock)

 

다음과 같이 테스트해보자.

BEGIN TRAN UPDATE test SET val = 2 WHERE pk = 100 EXEC SP_LOCK @@spid

SP_LOCK 프로시져로 살펴보았을 때 내재된 잠금은 다음과 같이 확인된다.

 

 

위의 결과는 52번 세션에서 인덱스(KEY)에 배타적잠금(Mode = X)를, 그것이 속한 페이지와 테이블에는 내재된 배타적잠금을 (Mode = IX)를 걸었다는 의미가 되겠다.

 

 

4. 잠금의 호환성 (Lock Compatibility)
  위의 잠금들 간의 호환 관계는 다음과 같은 간단한 테이블로 정리된다.
  위에서 언급한 바와 같이 Update Lock과 Shared Lock이 호환된다 함은 Update Lock이 걸려있는 페이지에 Shared Lock을 또 걸수 있다는 의미가 된다.

 

Requested modeExisting granted mode

IS

S

U

IX

SIX

X

Intent shared (IS)

Yes

Yes

Yes

Yes

Yes

No

Shared (S)

Yes

Yes

Yes

No

No

No

Update (U)

Yes

Yes

No

No

No

No

Intent exclusive (IX)

Yes

No

No

Yes

No

No

Shared with intent exclusive (SIX)

Yes

No

No

No

No

No

Exclusive (X)

No

No

No

No

No

No

(테이블 출처 : http://msdn.microsoft.com/en-us/library/ms172925.aspx)

 

 

 

5. 잠금의 길이

  잠금의 길이란 잠금이 지속되는 시간을 의미한다. 

  일반적인 공유잠금(S-Lock)은 SELECT 문이 끝나면 자동으로 풀린다. 반면에 단독잠금(X-Lock)과 업데이트잠금(UPD-Lock)은 트랜잭션 종료시까지 지속된다.

  공유잠금(S-Lock)의 길이는 경우에 따라 달라질 수 있어, 격리 수준이 Serializable이나 Repeatable Read인 경우 S-Lock도 트랜잭션 종료시까지 지속된다. 

'Develop > DB - mysql' 카테고리의 다른 글

MariaDB Master - Slave 간 Replication 구성  (0) 2021.02.18
MYSQL DB SIZE 조회  (0) 2020.07.17
mariaDB process kill  (0) 2020.06.15

Basic Widget

1. TextView

String을 화면에 나타내기 위한 Widget으로 Text의 색, 크기, 폰트 등을 설정할 수있으며 String은 리소스에 정의된 값을 읽어와 사용한다,

HTML class를 이용하여 HTML형식의 Text로 표한 가능

- text 

  -> 텍스트 뷰에 보이는 문자열을 설정할 수 있음

- textColor 

  -> 텍스트뷰에서 표시하는 문자열의 색상을 설정함

- textSize 

  -> 텍스트뷰에서 표시하는 문자열의 크기를 설정함

- textStyle 

  -> 텍스트뷰에서 표시하는 문자열의 스타일 속성을 설정함

- typeFace 

 -> 텍스트뷰에서 표시하는 문자열의 폰트를 설정함

- singleLine 

 -> 텍스트 뷰에서 표시하는 문자열이 한줄로만 표시되도록 설정함

- ellipsize 

 -> Text의 길이가 View의 크기보다 클 경우 처리 방식을 설정

- width, height, maxWidth, minWidth, maxHeight, minHeight

 -> View의 크기를 dp,sp,px로 나타냄

- ems, maxEms, minEms

 -> em을 기준으로 View Width 크기

 -> em은 폰트의 기본크기를 기준으로 한 크기

- lines, maxLines, minLines

 -> Line을 기준으로 한 View의 Height 크기

- gravity 

 -> 텍스트 뷰 내에서 텍스트의 정렬값을 지정

- lineSpacingExtra, lineSpacingMultiplier 

 -> 줄간 여백을 설정함

- letterSpacing 

 -> 글자간 간격

- autoLink, linksClickable

 -> link를 자동으로 표시하고 클릭할수있게 해주는 속성

- textlsSelectable

 -> 텍스트 내에서 선택이 가능하게 하는 속성


2. Button

사용자가 선택을 할 때 사용하는 Widget으로 Background에 selector를 설정하여 상태에 따라 다른 이미지를 보여주도록 만들 수 있다

- 버튼은 TextView를 상속받은 class로 TextView와 동일한 속성을 가지면 TextView의 background에 selector라고 하는 상태에 따라 다른 이미지를 보여주는 리소스를 설정하여 버튼처럼 보이도록 만든다

- selector를 만들기 위해서는 우선 버튼이 눌렸을 때와 눌리지 않았을 때 이미지가 필요

- 리소스에 이미지를 추가하기 위해서는 우선 drawable 디렉토리르 생성

- Android를 Project로 변경하고 app->src->main->res에서 New-> Android resource directory를 선택

- New Resource Directory에서 Resource type을 선택하고 drawable로 하고 Avilable qualifiers에서 Desity를 선택한 다음 X-High Density를 선택

- Selector를 생성하기 위해서는 res/drawable 에서 New->Drawable resource file 선택

- file name으로 button_selector라고 적고 Root Element는 selector를 선택

- 안드로이드에서는 색깔을 가지고 이미지처럼 만들어서 사용할 수 있도록 기능 제공



3. CompoundButton

선택 또는 취소를 나타내는 Widget으로 CheckBox, RadioButton, Toggle, Switchr 가 있다.

-CheckBox는 예/아니오를 나타내기 위해 사용하는 Widget이다



'Develop > Android' 카테고리의 다른 글

Layout 종류  (0) 2018.08.29
Layout 종류  (0) 2018.08.28
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

Pattern 사고


사람들은 혼돈의 상태보다 정리된 하나의 패턴 상태를 좋아한다.


한마디로 방대한 정보를 정리하는 사고이고 

복잡한 정보를 이해하기 쉽게 정리하여

의사소통을 쉽게한다


가끔은 기존의 패턴으로는 해석되지 않는 것을 발견할 수도 있다.


1. 패턴사고의 정의와 유용성

1) 패턴은 세상을 이해하는 창

 -> 수많은 정보를 자신만의 패턴으로 기억

2) 다른사람들과 의사소통 할 수 있는 강력한 도구

 -> 공통된 패턴으로 세상을 해석하기 때문에 의사소통 가능


2. 알면 좋은 패턴

1) 이해를 돕기 위한 패턴

 - 시간, 공간, 관점

2) 설득을 돕기 위한 패턴

 - 확대/축소, 샌드위치, 장/단점

비교, 비유, 인과관계, 육하원칙


시간 

- 시간에 따라서 정보들을 정리하기 좋아함

1) 시점별

2) 시간

3) 단기, 중기, 장기

4) 1단계, 2단계, 3단계

5) 준비(혹은 기획), 실행, 평가

6) 도입기, 성장기, 성숙기, 쇠퇴기

가장 사용 빈도가 높음


공간

- 공간에 따라서 정보들을 정리하기 좋아함

1) 국가별

2) 지역별

3) 지사별

4) 장소별

관점

- 사람들이 좋아하는 정보정리 패턴

1) 고객입장, 회사입장, 직원입장

2) 교사입장, 학생입장, 학부모입장

3) 정규직, 비정규직

4)노동계, 사용자 단체, 정부

3. 패턴을 활용한 내용 구성 사례


'Busniess > Strategy planning' 카테고리의 다른 글

Matrix(메트릭스) 사고  (0) 2018.08.29
Framework 사고  (0) 2018.08.28
MECE란  (0) 2018.08.27
네트워크 효과  (0) 2017.02.08

Layout 종류


1.     GridLayout

n  행과 열로 이루어진 격자 모양으로 위젯을 배치할 수 있도록 하는 레이아웃

n  API14부터 제공

n  Gridlayour-v7을 이용하여 하위버전에서도 사용가능

n  GridLayout내에 위젯을 배치하면 orientation에 의해 자동으로 가로 또는 세로로 우선 배치되고 가로 또는 세로의 개수는 columnCountrowCount로 설정할 수 있다.

n  위젯은 layout_column layout_row로 원하는 위치를 지정할 수 있고, layout_gravity로 정렬 방식을 지정할 수 있다.

n  위젯은 layout_columnSpanlayout_rowSpanCell간 합치기를 할 수 있있다.

n  API21부터는 layout_columnWeight, layout_rowWeight를 제공한다.

 

-       테이블 레이아웃

n  행과 열로 이루어진 격자 모양으로 위젯을 배치할 수 있도록 함

n  각 칼럼은 위젯의 크기에 따라 늘어나거나 줄어들 수 있음

n  테이블 레이아웃은 테이블로우(TableRow)와 함께 사용됨

n  테이블 레이아웃은 하나의 행에 테이블로우 하나를 넣을 수 있으므로 여러 개의 테이블로우가 들어갈 수 있도록 함

n  각각의 위젯들은 테이블로우 안에 포함되어 테이블 레이아웃에 추가됨

n  칼럼의 수는 들어가는 위젯에 따라 자동으로 결정됨


2.     FrameLayout

n  FrameLayoutChild View를 겹쳐서 보여줄 수 있는 Layout이다.

n  FrameLayout에 배치된 Child Viewlayout_gravity를 이용하여 화면의 상단, 하단, 중앙 등에 배치 할 수 있다.

n  Child Viewlayout의 특정 위치에 배치하고자 하는 경우에도 FrameLayout을 사용한다. FrameLayoutlayout_margin_leftlayout_margin_top을 이용하여 x,y의 위치에 배치한다.

n  FrameLayoutTab등의 container로 사용되거나, Fragkment를 배치하기 위한 Layout으로 자주 사용된다.


3.     ScrollView

n  LinearLayout과 같은 Layout 이나 ImageView, TextView 와 같은 Widget들은 내부적으로 Scroll을 가지고 있지 않다.

n  View내부에 Content가 화면의 크기보다 큰 경우, Scroll을 하여 Content를 보여주기 위해서 ScrollView가 사용된다.

n  ScrollView는 내부에 오직 1개의 Child View만을 가져야 한다

  n수평방향 스크롤의 경우 HorizontalScrollView를 사용한다.


'Develop > Android' 카테고리의 다른 글

Basic Widget  (0) 2018.08.30
Layout 종류  (0) 2018.08.28
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

Matrix 사고

1. 메트릭스란

 - 서로 다른 두 개의 관점을 이용하여 대상을 분류

 - 세상을 보는 새로운 시각 제시

 - 의사결정, 우선순위 선정, 문제해결 지원을 위해 사용


※ 좋은 Matrix를 활용하면 복잡해보이는 문제도 비교적 쉽게 의사결정


훌륭한 기획자는 

  ->이미 만들어진 좋은 matrix를 많이 알고 상황에 맞는 적절한 matrix 활용

  ->상황에 맞는 적절한 Matrix가 없는 경우Matrix를 직접 만들어야함


좋은 Matrix 만들기

 - 두 개의 관점이 서로 갈등관계

 - 갈등관계로 인해 4개의 분면이 서로 다름


2. Matrix 사고의 필요성

  1.  메트릭스는 훌륭한 의사결정 도구라는 것

  2.  우선순위를 선정할 때 사용할 수 있다는 것

  3.  문제해결을 도울 수도 있다는 것


Matrix를 사용하지 않아도 의사결정, 우선순위, 문제해결이 가능하다


그럼에도 불구하고 Matrix를 추천하는 이유

 - 단순성, 직관성이 좋음

 - Visualiztion 효과

 - 상대방에게 내용을 이해 및 설득


3. Matrix 사용법

  •  Matrix 종류

   - 아이젠하워, pay-off, BCG


아이젠하워 Matrix

Image result for 아이젠하워 Matrix

중요성 시급성의 갈등관계

4개의 분면


Pay-off 

GE의 페이오프 매트릭스(Pay off matrix)

문제해결 과정 -> 해결 대안

Input과 value 


BCG

BCG 매트릭스 (Boston Consulting Group)

사업전략의 결정

상대적 시장점유율, 시장성장률로 분류함


4. Matrix를 만드는 방법

 - 좋은 Matrix 특성

 1) '상이한 두 가지 관점'이 서로 갈등관계 형성

 2) 4분면 각각이 다른 분면과 구별되는 독특한 특성

 

 - Matrix 설계

 1) Matrix를 통해서 분류하고자 하는 대상과 목적 확인

 2) 브레인스토밍을 통해 분류하기 위해 사용할 수 있는 관점 나열

 3) 관점들의 우선순위를 정하기

 4) 우선순위가 높은 것부터 내림차순으로 matrix 만들기



'Busniess > Strategy planning' 카테고리의 다른 글

Pattern 사고  (0) 2018.08.30
Framework 사고  (0) 2018.08.28
MECE란  (0) 2018.08.27
네트워크 효과  (0) 2017.02.08

Layout의 종류

1.     Layout의 종류

n  대표적인 레이아웃

레이아웃 이름

설명

리니어 레이아웃

- 박스 (Box) 모델

- 사격형 영역들을 이용해 화면을 구성하는 방법

- 표준 자바의 BoxLayout과 유사

상대 레이아웃

- 규칙(Rule)기반 모델

- 부모 컨테이너나 다른 뷰와 상대적 위치를 이용해 화면을 구성하는 방법

프레임 레이아웃

- 중복 배치 모델

- View를 동일한 위치에 중복하여 배치할 가능

- margin gravity를 이용하여 View를 특정한 위치에 배치 가능

- FragementVisibility를 이용한 View Change등에 주로 사용

그리드 레이아웃

- 격자(Grid) 모델

- 격자 모양의 배열을 이용하여 화면을 구성하는 방법

- HTML에서 많이 사용하는 정렬 방식과 유사하여 실용적임

스크롤 뷰

- 스크롤이 가능한 컨테이너

- 뷰 또는 뷰그룹이 들어갈 수 있으며 화면 영역을 너어갈 때 스크롤 기능 제공

 

2.     LinearLayout

n  속성

ü  채우기(fill model)
->
뷰를 부모 뷰의 여유 공간에 어떻게 채울 것인지 설정함

ü  방향(orientation)
->
뷰를 추가하는 방향을 설정함

ü  정렬방향(gravity)
->
뷰의 정렬 방향을 설정함

ü  여유 공간(margin)
->
뷰의 여유 공간을 설정함

ü  공간가중치(weight)
->
뷰가 차지하는 공간의 가중치 값을 설정함

n  정렬 방향 설정하기

ü  두 가지 정렬 속성

정렬 속성

설명

Layout_gravity

부모 컨테이너의 여유 공간에 뷰가 모두 채워지지 않아 여유 공간안에서 뷰를 정렬 할 때

gravity

뷰에서 화면에 표시하는 내용물을 정렬할 때(텍스트 뷰의 경우 내용물은 글자가 되고 이미지뷰의 경우 내용물은 이미지가 됨)

 

- layout_gravity

è  뷰의 layout_widthlayout_height 속성을 wrap_content로 할 경우에 같이 사용할 수 있음

n   공간가중치 설정하기

ü  Layout_weight 속성

è  LinearLayout Child를 배치하고 남은 여백을 어떻게 배치할 것인가를 설정

è  Layout_weight가 설정되어 있는 child간 값의 비율로 여백을 분배

è  Layout_wegiht는 여백을 나눠가지는 비율이지 child view간의 상대적 크기가 아님

3.     RelativeLayout

ü  부모 컨테이너나 다른 위젯들과 상대적 위치를 이용하여 배치하는 레이아웃

ü  다른 widget의 정보를 기준으로 내 위치를 결정하는 방식으로 ChildParent나 다른 Child의 위치를 기준으로 내 위치를 결정하고 align을 맞춰 크기를 결정한다.


'Develop > Android' 카테고리의 다른 글

Basic Widget  (0) 2018.08.30
Layout 종류  (0) 2018.08.29
안드로이드 다국어 설정  (0) 2018.08.22
안드로이드 스튜디오 cannot resolve symbol r  (0) 2017.08.18
[Android] Activity 화면 전환  (0) 2017.01.03

Framework 사고

프레임워크 사고란 전문가들이 오랫동안 일하면서 정리해 놓은 사고의 틀을 말한다.


기획은 거의 항상 새로운 업무의 연속이기 때문에 체계화된 사고를 통해 해결을 도출 하는 것이 중요하다.


업무에 맞는 Framework 선택

 - 새로운 업무를 시작할 수 있는 단초 제공

 - 경험하지 않은 업무를 어느 정도 품질을 확보한 상태에서 마무리 가능


전문가들의 Know-how 일을 시작할 수 있는 단초 역할

일이 새롭고 어려울수록 좋은 프레임워크를 제대로 활용하는 것이 큰힘

-> 일정한 수준 이상의 품질을 확보하기가 용이


Framework 사용법

3C 4P 7S 5Force Value Chain PEST SWOP

생각의 지평을 넓히는 행위


대표적 Framework 4가지 소개


3C

오마에 겐이치의 의해 개발

Customer - 시장 규모 및 성장성

Company - 경쟁상대의 전략민 경쟁력 분석

Compertior - 자사 경쟁력 객관적으로 점검

자사 전략 도출


4P

제롬 맥카시의 의해 개발

Product - 생산 제품 + 서비스 + 다양한 혜택(디자인, 브랜드, 보증, 상품)

Price - 특정 물품의 가치를 객관적, 수치화된 지표로 나타낸 것

Place - 판매촉진을 위한 공간의 배치, 고객과의 접촉이 이루어지는 전체적인 유통경로의 관리 포함

Promotion - 광고, 인적판매, 판매촉진, PR, 직접마케팅 

4P중 하나의 변화는 다른 3개에도 영향

시장에 적합한 마케팅 믹스 선택


7S

맥켄지 컨설팅

Structure - 조직 구성원들의 활동을 조정/통합하는 틀

Strategy - 경쟁우위를 확보하기 위한 활동 방안 및 계획

Skills - 다른조직과 구별되는 특이한 능력 및 역량  

Staff - 최고경영자의 리더쉽, 내부 운영방법, 조직구성원들이 자신을 외부 세계에 드러내 보이는 방법

Style - 조직의 인적 자원을 말하는 것

Systems - 의사결정 및 운영을 지배하는 공식 및 비공식적 제도와 절차

Shared values - 조직구성원들이 세상을 바라보고 해석하는 개념,원리,신념등


조직의 강약점 도출

개선방안 도출

조직진단


7S 중 하나의 변화는 다른 6S에 영향을 줌

종합적인 관점에서 조직을 이해하고 개선


5Force

1. 기존 기업간의 경쟁

2. 신규진입자의 위협

3. 대체품의 위협

4. 공급자의 교섭력

5. 구매자의 교섭력


해당기업 혹은 기업이 속해있는 산업이 얼마나 매력적인지 파악

전략적인 대안 도출하고 선택하는 업무 지원


'Busniess > Strategy planning' 카테고리의 다른 글

Pattern 사고  (0) 2018.08.30
Matrix(메트릭스) 사고  (0) 2018.08.29
MECE란  (0) 2018.08.27
네트워크 효과  (0) 2017.02.08

MECE란

Mutually Exclusive Collectively Exhaustive

상호배타적              전체포괄


관심있는 대상 주제들을 상호 겹치지 않으면서 부분의 합이 전체가 되도록 분해하는 것


예를들어 사람을 구분해보면

  사람

남자 여자


사람을 남자와 여자 두 가지로 나눴다면 MECE하게 나눴다고 볼 수 있다.


하지만

 

    사람

남자 여자 학생


으로 구분한다면 상호배타 위배 라고 볼 수있는데, 학생이면서 남자인 경우, 여자이면서 학생인 경우가 발생하기 때문이다.


MECE 사고로 정리 할 때는 중복없이, 빠짐없이 정리 해야한다.


MECE사고를 통해

  • 복잡해 보이는 대상, 주제 등을 간결하게 정리 할 수 있음

  • 때로는 브레인스토밍만으로는 생각할 수 없는 새로운 것을 발견할 수도 있음


MECE 사고의 방법

  • 절차, 시간에 따른 세분화

  • 구성요소에 따른 세분화


구성요소에 따른 세분화의 방법

  • 반대개념, 프레임워크, 매트릭스 활용 등이 구성요소에 따른 세분화의 대표적인 방법


'Busniess > Strategy planning' 카테고리의 다른 글

Pattern 사고  (0) 2018.08.30
Matrix(메트릭스) 사고  (0) 2018.08.29
Framework 사고  (0) 2018.08.28
네트워크 효과  (0) 2017.02.08

+ Recent posts