전편에 이어 이번은 본편격인 실제 안드로이드 스튜디오 설치를 해보자.

설치에 앞서 본편에서 언급했어야하는데..

설치하고자하는 컴퓨터가 CPU 가상화를 지원하지않으면 아마 실제 사용이 어려울것이다.

참고로 사무실에 구형 컴터는 가상화 미지원으로 인하여 테스트하는 단계인 에뮬레이터가 작동하지않더라.

해결 방법이 있는지는 잘 모르겠지만..

가상화 문제는 인텔에서 지원하는 소프트웨어로 해결하라는 내용 있긴하던데..

이 방법도 결국은 CPU가 가상화를 지원한다는 선행조건을 만족한 상태에서 가상화가 에러나는 경우의 해결책이더라.

하위버전을 설치 또는 다른 방법으로 해결이 가능할것 같지만.. 우선은 미리 알려드립니다.




1. 설치 프로그램 다운로드


일단은 설치 프로그램을 다운 받습니다.

다운로드 페이지 : http://developer.android.com/sdk/

접속하시면 아래처럼 뜹니다. 빨간색 테두리로 된 [Download Android Studio]를 클릭해주세요.





아래 그림처럼나오면 체크박스에 동의한다고 [체크]해주시고 [Download Android Studio for Windows]를 클릭해서 다운로드 하자.

그러면 곧 페이지가 이동되면서 다운로드 창이 뜬다. 다운로드 위치를 정해주고 난 후 다운로드 받자.





2. 안드로이드 스튜디오 설치


이제 다운받은 파일을 실행해주자.


설치시작을 알리는 화면이 나오면 바로 [Next]





설치 선택 옵션 화면이다.

[Performance]가 문제의 기능이다.

필수가 아닌 선택옵션이다. 에뮬레이터의 성능을 업 시켜주는 옵션으로 설명되어져있다.

이 기능을 사용하려면 위에서 언급한 CPU의 가상화 기능이 필요하다.

다시 보니 이 기능을 설치안하고 옵션에서 설정하면 가상화 지원없이도 가능할것 같긴하다.

시간날때 옵션 한번 천천히 훑어봐야겠다.

일단 전체 다 설치하자.

대다수의 CPU가 가상화를 지원할것이다.





Android SDK 라이센스 동의 화면이다.

[I Agree]를 클릭하자.





Intel (R) Hardware Accelerated Execution Manager 라이센스 동의 화면이다.

[I Agree]를 클릭하자.





설치 경로를 지정하는 화면이다.

위쪽이 Android Studio의 설치경로를 지정하는 부분이며

아래쪽이 Android SDK의 설치경로를 지정하는 부분이다.

적당한 경로를 지정한후에 [Next]





이 화면은 설치옵션에서 Performance를 체크하면 나오는 화면같다.

에뮬레이터가 작동할 때 성능향상을 위해서 얼마의 RAM을 할당할지를 물어보는 화면이다.

많이 할당하면 더 좋아지겠지만 제 컴퓨터 사정사 기본값으로 합니다.

다른분들은 자기 사항에 맞춰서 값을 수정하셔도 무방할것 같네요.

[Next]





이 화면 더 이상의 자세한 설명은 생략한다!!

[Install]을 눌러서 설치를 시작하자!





설치 진행중인 화면

Android SDK도 설치하기 때문에 시간이 좀 걸린다.





설치는 끝났다. [Next]





진정한 설치 완료 화면..ㅡ_ㅡ;;

바로 구동 테스트를 할수 있게 [Start Android Studio] 가 체크된 상태로

[Finish]를 클릭하자.





3. Android Studio 실행


프로그램 시작을 체크한 후 설치를 마쳤기 때문에 프로그램이 바로 실행이 될것이다.

만약 그러하지아니하다면...

그냥 수동으로 실행시키자...;;

그러면 아래와 같은 화면이 나온다.

이전 버전의 안드로이드 스튜디오의 셋팅을 불러올래? 아님 그냥 Go?

이전 버전 따위 어떻게 생긴줄도 모르기에..;;

[I do not have a previous version of Android Studio or I do not want to Import my settings]를 선택하고 [OK]





그러면 컴퍼넌트를 다운로드하는 창이 뜬다.

캡쳐할게 또 하나 느는군...;;





컴포넌트가 다운로드가 완료됐나보다. [Finish]





이게 첫 화면이다. 아닌가;;;

[Start a new Android Studio project]를 클릭해보자.

말 그대로 새로운 안드로이드 스튜디오 프로젝트를 시작한다는 말이다.

우린 가지고 있는 프로젝트도 없고하니 이거외엔 할게 없다.ㅋ





Application name - 프로그램명을 지정한다.

Company Domain - 회사 도메인을 적어라네요.

Project location - 실제 프로젝트가 생성될 물리적 위치

적당히 지정해 준 다음 [Next]





요즘은 TV용 앱도 제작이 되나보군요.

그런건 아직 잘 모르니 패스하고..

[Phone and Tablet]을 체크하고 Minimum SDK를 [API19: Android 4.4 (KitKat)]을 선택합시다.

더 상위 버전을 해도 되지만..

제 핸드폰이 키캣인 관계로...

그리고 [Next]





테마선택화면인가봅니다.

기본 선택되어있는 테마로 가겠습니다.

[Blank Activity]를 선택하고 [Next]





단계가 참 많네요.

적당한 이름들을 기입한 후에 [Finish]





헐.. 자바가 방화벽에 걸렸네요.

허용해줍시다. (별게 다 나타나네요.ㅠ)





헉... 이제는 안드로이드 스튜디오가 방화벽에 블럭됐네요...;;

허용해줍시다.





우와~ 드디어 고대하고 고대했던...

프로그램 화면 입니다.

자, 많이들 구경하시고 오늘은 여기까지 입니다.




원래는 에뮬레이터 가동까지해보고 싶지만..

여기까지 포스팅하는것도 힘드네요.

기회가 된다면 다음에 좀 더 연결해서 나아가 볼께요.


근데.. 다음 포스팅이 있긴 할련지...;;




Posted by T.t.
:


내가 지금 이 글을 포스팅할꺼라고는 생각도 못했다.

자마린(Xamarin)이 나와서 이제부터는 안드로이드 앱은 이걸로 할테다 라고 다짐했었는데..

자마린 너무 비싸다...

트라이얼 기간 끝나니깐 바로 작동도 안되더라..ㅠ

회사에 부탁하면??? ㅡ.ㅡ+


그러다가 비주얼 스튜디오가 2015부터 안드로이드 지원이 된다길래 기대했는데...

그게 그게 아닌것 같더라는...

더불어 간단하게 하이브리드 앱 하나 할게 생겨서..

이클립스랑 다운로드할려고 하니...

안드로이드 스튜디오가 떡하니....


그래서 1년만인가..

자바부터 다시 깔아보다가... 포스팅하기로 맘 먹었다.

포스팅이 너무 귀찮다..ㅋㅋ


우선 자바 다운로드부터...



1. JAVA JDK 다운로드


다운로드 Url : http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen

일단 위의 링크로 가면 아래와 같은 화면을 만납니다.

그러면 아래 화면의 빨간 테두리 속의 [Java DOWNLOAD] 버튼을 클릭합니다.





그러면 아래와 같이 플랫폼 선택해서 다운로드하게 되는데..

위쪽에 Accept를 체크하시고...

해당 OS에 맞는걸 클릭하시면 다운로드창이 뜨게 됩니다.

저는 빨간 테두리쳐진 Windows x64버전을 다운로드 하겠습니다.





이 이후는 원하는 위치 지정하고 저장하면 되니깐 패스~



2. JAVA JDK 설치


위에서 다운로드한 설치파일을 실행합니다.

그러면 공간이 어쩌고...

빨리 지나가서 자세한 내용은 못봤지만 먼가 확 지나갑니다. 그러면서 아래 그림처럼 설치 시작창이 뜹니다.

다 필요없고 [NEXT]





이제는 설치 경로를 지정하는 부분입니다. 경로 변경이 필요하신분은 [Change]를 눌러서 경로를 변경해주면 됩니다.

저는 현재 C에 공간이 넉넉치않은 관계로 D로 설치 경로를 변경했습니다.

그런 후에 [NEXT]





그러면 아래와 같이 설치 화면이 지나가게 됩니다.





한참 설치하다가 갑자기 설치 경로를 물어보는 아래와 같은 창이 뜹니다.

자세히 보면 이번에는 JDK가 아니라 JRE 설치 경로 입니다.

이번에도 적당히 경로를 설정해주시고 [NEXT]





그러면 또 아래처럼 설치화면...





드디어 대단원의 설치완료!!

[Close]를 눌러서 설치를 완료합니다.





이로서 JAVA JDK 설치가 끝났습니다.

하지만 아직 마무리 작업이 남았습니다.

환경변수 설정...

설치한 자바를 편히 쓸수있게 환경변수를 설정해줘야 합니다.

이거 설정안해주면 안드로이드 스튜디오도 아마 작동안합니다.

제가 포스팅전에 잠깐 설치해봤거든요...

그랬는데 에러 메세지가 둥 떴어요. 그러면서 실행이 안되더라고요.

환경변수 문제는 아닌데..

아무생각없이 jre가 jdk 설치인줄 알고.. 뭐야 왜 또 물어봐.. 이러고..

jdk에다가 jre를 덮어 썼습니다.ㅡ_ㅡ;;

아~ 쪽팔려..;;

그래서 안드로이드 스튜디오가 jdk를 로드못해서 에러가 난것 같은데...

에러 메세지가.. 환경변수를 확인하라고 떴었던것 같아요...

뭐 재설치로 해결은했지만 저처럼 실수하지마세요.




3. 환경변수 설정


[윈도우] + [Pause] 눌러줍니다.

그럼 아래와 같은 화면이 나옵니다. 내 컴퓨터에서 마우스 오른쪽 후에 속성을 클릭하셔도 같은 화면이 나옵니다.

그런데 제 화면은 영어네요.;;;

영문판 쓰시는분은 그냥 빨간 테두리 쳐진곳을 클릭하시면 됩니다.

한글판 쓰시는분은 [고급 시스템 설정]이라고 뜨거나 비슷한 메뉴를 클릭해주시면 됩니다.





아래와 같은 창이 뜨면 [Advanced] 탭인걸 확인하신 후 [Environment Variables...]을 눌러주세요

한글판은 [고급] 탭에 [환경 변수] 라고 뜰겁니다.





아래와 같은 창이 뜨면 [New...]을 눌러주세요.

한글판은 [새로 만들기] 라고 뜰겁니다.





아래 사진처럼

Variable name: JAVA_HOME 라고 적고

Variable value: (자신의 JDK 설치경로) 를 적어준다.

한글판은

변수이름: JAVA_HOME

변수 값: (자신의 JDK 설치경로) 로 해준다.

변수이름(JAVA_HOME)은 그냥 웬만하면 바꾸지마세요.

제가 설치 실수로 잘못깔았을때 JAVA_HOME을 확인하라고 떴던걸로 기억하는데.. .

테스트는 안했지만 아마도 변수이름을 매칭해주거나 또는 설정에서 바꿔주거나해야하는것 같습니다.

다 끝났으면 [OK]





이제는 Path를 설정해야한다. 아래 사진처럼 [System Variables]에서 [Path]를 찾아서 [Edit]를 클릭하자.

한글판은 [시스템 변수]에서 [Path]를 찾아서 [편집]을 클릭하면 된다.





창이 뜨면 아래 사진처럼 합니다.

[Variable value]에 커서를 맨 마지막으로 옮긴 후 ;%JAVA_HOME%\bin; 를 추가적으로 입력해줍니다.

;(세미콜론)을 패스를 구분할때 씁니다. 세미콜론으로 구분하여 여러개의 패스를 한칸에 등록하는거죠.

혹시 마지막에 ;(세미콜론)이 이미 있다면 맨 앞 세미콜론은 빼고 하시면 됩니다.

한글판은 Variable value가 [변수 값]으로 되어있습니다.

[OK]를 누릅니다.





[System Variables]에서 [New...]를 클릭합니다.

한글판에서는 [시스템 변수]에서 [새로 만들기] 입니다.





아래처럼 창이 뜨면

Variable name: CLASSPATH 라고 적고

Variable value: %JAVA_HOME%\lib 를 적어줍니다.

한글판은

변수이름: CLASSPATH

변수 값: %JAVA_HOME%\lib 라고 적으시면 됩니다.

그리고 [OK]





그리고 [OK] 한번 더 클릭해준다.





이로서 환경 변수 설정도 끝났다.

자 마지막으로 제대로 되는지 테스트한번 해보면 됩니다.


[윈도우] + R 을 눌러줍니다.

그리고 실행창이 뜨면 cmd라고 적어줍니다.

명령 프롬프트 창이 뜹니다.

다른 방법으로 명령 프롬프트 창을 띄우셔도 됩니다.





명령 프롬프트 창이 뜨시면

java -version 이라고 적어줍니다. 정상적으로 변수들을 입력하셨다면

아래 사진처럼 현재 설치된 자바 버전에 대한 정보가 나옵니다.





자, 이제 설치와 환경 변수 설정 작업이 끝났습니다. 수고하셨습니다.

다음 포스팅은 아마도 안드로이드 스튜디오 설치 관련 포스팅이 될것 같습니다.


설치 시간에 비해 스크린샷 찍는다고 시간을 너무 많이 잡아먹어서 지쳤음.

그래서 안드로이드 스튜디오 설치는 다음에 해야겠음.

오늘이 목요일이라 불금은 논다고 설치안할것 같고..

주말은 주말이라..;;


다음 포스팅은 빨라도 월요일인가..

과연 월요일날 포스팅 할것인가??ㅋㅋ




Posted by T.t.
:


사실 저는 Mvc로 작업할 일이 그다지없습니다;;

하지만 그래서 자주 잊어먹죠..ㅡ_ㅡ;;

그래서 기록차 남겨놓습니다.


Mvc가 버전업할때마다 이 부분이 조금씩 업그레이드되는 덕분에..

그 수정위치가 조금씩 바뀐것 같네요.

분명히 5버전으로 넘어왔을때도 체크 했었는데...

엊그제 수정할 부분이 있어서 작업하는 도중에 몇번 삽질...

파일 다 뒤져보고 완료...ㅠ

그래서 기록차 남겨놓습니다.


이 글이 어느 누군가에게는 도움이 되길...

그 누군가가 나라는건 함은정(?)..ㅋ


또한 사진을 클릭하시면 정말 보기 좋은..

큼직막한 사진이 '또옹'하고 팝업됩니다.

참고하세요.ㅋ




1. 새 프로젝트 생성 및 기본 설정


위 그림과 같이 새 프로젝트를 생성합니다.

어렵지않아요~.,~


MVC를 이용할겁니다. 인증은 [개별 사용자 계정]으로 해줍니다.


새 프로젝트가 생성되면..

/Web.config 에 가서 데이터베이스 연결부분을 자신에 맞게 손보자. 물론 기본값으로 쓰실분은 그렇게하셔도 된다.




2. Models 수정


기본 인증에는 유저의 정보를 UserName 과 Password 만 입력 받는다..

여기서 UserName은 보면은 사용자 이름이구나.. 싶지만...

유저의 아이디 입니다.

아이디를 이름으로 만들면... 이름일수도...;;

일단 이게 마음에 안든다고 UserId를 하나 만들어서 이걸 아이디로 쓰고..

UserName를 리얼네임으로 해서 써도 무방하나...

그냥 내 몸은 프로그램에 맞추는게 편합니다.

왜냐.. UserName을 기본키로해서 링크 연결이 되는데...

이걸 다 UserId로 바꿀려면...

해보지는 않았지만.. 이쯤에서 그냥 포기..;;


잡설이 길었는데..

일단 기본 정보에서 추가하고자하는 부분은....

닉네임, 연락처 그리고 이메일 정도만 추가하겠습니다.


그리고 덧붙여서... 마이그레이션 따윈 없을 예정입니다.

그냥 테이블 드랍 시켜서 다시 작업하세요.

그게 편합니다.

우리가 많은 작업할껏도 아니고..

아주 순수하게 기본 사용자 정보만 몇개 더 받을 뿐입니다.ㅋㅋ


/Models/AccountViewModels.cs 파일을 엽니다.

/Models/AccountViewModels.cs



public class RegisterViewModel

{

    [Required]

    [Display(Name = "사용자 이름")]

    public string UserName { get; set; }


    [Required]

    [StringLength(100, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 6)]

    [DataType(DataType.Password)]

    [Display(Name = "암호")]

    public string Password { get; set; }


    [DataType(DataType.Password)]

    [Display(Name = "암호 확인")]

    [Compare("Password", ErrorMessage = "암호와 확인 암호가 일치하지 않습니다.")]

    public string ConfirmPassword { get; set; }z

}

이렇게 되어 있는 부분이 보일겁니다.

이 부분이 회원 가입시 관련된 부분입니다.

이 부분을 아래와 같이 변경하도록 하겠습니다.


/Models/AccountViewModels.cs


public class RegisterViewModel

{

    [Required]

    [Display(Name = "ID")]

    public string UserName { get; set; }


    [Required]

    [StringLength(100, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 4)]

    [DataType(DataType.Password)]

    [Display(Name = "암호")]

    public string Password { get; set; }


    [DataType(DataType.Password)]

    [Display(Name = "암호 확인")]

    [Compare("Password", ErrorMessage = "암호와 확인 암호가 일치하지 않습니다.")]

    public string ConfirmPassword { get; set; }


    [Required]

    [StringLength(20, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 2)]

    [Display(Name = "닉네임")]

    public string UserNick { get; set; }


    public string Hp1 { get; set; }


    [Required]

    [StringLength(4, ErrorMessage = "{0}은(는) {2}자 이상 ~ {1}자 이하여야 합니다.", MinimumLength = 3)]

    [Display(Name = "휴대폰 가운데 번호")]

    public string Hp2 { get; set; }


    [Required]

    [StringLength(4, ErrorMessage = "{0}은(는) {2}자 여야 합니다.", MinimumLength = 4)]

    [Display(Name = "휴대폰 마지막 번호")]

    public string Hp3 { get; set; }


    [Required]

    [StringLength(50)]

    [DataType(DataType.EmailAddress)]

    [Display(Name = "이메일")]

    public string Email { get; set; }

}

이렇게 변경하면 된다.

친절하게도 추가되거나 변경된 부분은 눈에 띄게 표시해드렸음.


맨 위에부터 설명하자면..

[Display(Name = "사용자 이름")] 이라고 되어 있는 부분이었는데..

사용자 이름을 ID로 변경해줬다.

등록페이지가 호출되었을때 사용자 이름을 적는칸으로 오인될 수 있기 때문에..

자잘한 수정을 해줬다.

물론 여기만 수정하면 되는건 아니다. 수정 페이지도 수정해줘야 하고... 로그인 페이지도 수정해줘야 하지만..

우선은 등록할때 사용자 정보를 더 받기 위함이 목적이기에 여기만 수정해보도록 한다.


다음은 이부분입니다.

[StringLength(100, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 6)]

패스워드 최소 길이를 4자이상으로 바꿨습니다. 6자에서 4자. 딱히 이유는 없습니다.

대국민 비밀번호 1234 를 사용할수 있게 해주는 친절한 보안의식없는 어느 한 개발자의 말도안되는 배려입니다..ㅡ_ㅡ;


[Required]

[StringLength(20, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 2)]

[Display(Name = "닉네임")]

public string UserNick { get; set; }

[Required] 이부분은 필수입력 항목이란 뜻입니다.

[StringLength(20, ErrorMessage = "{0}은(는) {2}자 이상이어야 합니다.", MinimumLength = 2)]

이부분은 최대 20자까지 가능. 최소 2자 이상을 입력 받는다는 구문이구요. 그걸 어길시 나오는 멘트를 정하시면 됩니다.

형식은 크게 어렵지않으니간 패스~


나머지도 별로 크게 어려운게 없습니다...

대충 넘어가고..

이메일 부분에 보시면

[Required]

[StringLength(50)]

[DataType(DataType.EmailAddress)]

[Display(Name = "이메일")]

public string Email { get; set; }

이 중에서 DataType을 정하는 부분에서 저렇게 EmailAddress로 정해줍니다.

이로써 AccountViewModels 수정이 완료되었습니다.

하지만 이게 끝이 아닙니다.

한군데를 더 수정해야합니다.


/Models/IdentityModels.cs

/Models/IdentityModels.cs



using Microsoft.AspNet.Identity.EntityFramework;



namespace Mvc5TestUser.Models

{

    // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.

    public class ApplicationUser : IdentityUser

    {

        public string UserNick { get; set; }

        public string Hp { get; set; }

        public string Email { get; set; }

    }


    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>

    {

        public ApplicationDbContext()

            : base("DefaultConnection")

        {

        }

    }

}

변경 추가된 부분은 색칠해 드렸고요.

잘보면 딱히 이상을 느낄만한곳이 Hp 부분일껍니다.

모델에서는 Hp1, Hp2, Hp3 이렇게 받았는데...

왜 이랬을까요...??

저렇게 나눠서 입력받을 내용을 합쳐서 Hp 라는 컬럼에다가 입력할려고 그랬습니다.;;


여기서 주의깊게 볼것은...

http://go.microsoft.com/fwlink/?LinkID=317594

여기를 방문해라는건데요.

들어가면 영어인데... 어딘가에 번역 버튼이 있을껍니다.

참고하시면 좋은 정보가 될듯합니다.

근데 언제 저런 링크가 있었지..;;

이 블로그 쓰면서 처음보고 방금 들어가 봤음.;;;

이로써 모델 수정이 완료 되었습니다.




3. Controllers 수정


Mvc의 꽃인 컨트롤러 수정이다.


/Controllers/AccountController.cs

/Controllers/AccountController.cs



//

// POST: /Account/Register

[HttpPost]

[AllowAnonymous]

[ValidateAntiForgeryToken]

public async Task<ActionResult> Register(RegisterViewModel model)

{

    if (ModelState.IsValid)

    {

        var user = new ApplicationUser() {

            UserName = model.UserName,

            UserNick = model.UserNick,

            Hp = model.Hp1 + "-" + model.Hp2 + "-" + model.Hp3,

            Email = model.Email

        };

        var result = await UserManager.CreateAsync(user, model.Password);

        if (result.Succeeded)

        {

            await SignInAsync(user, isPersistent: false);

            return RedirectToAction("Index", "Home");

        }

        else

        {

            AddErrors(result);

        }

    }


    // 이 경우 오류가 발생한 것이므로 폼을 다시 표시하십시오.

    return View(model);

}

언제나 그렇듯....

수정된 부분은 색칠했다.

파일을 열면 내용이 좀 많다.

저 부분은 알아서 찾아라..;;

제 컴퓨터에서는 72라인부터 시작이었습니다.

기존에는 UserName 하나만들 넘겨받았던 부분인데..

이제는 좀 많은걸 넘겨봤습니다.

딱히 보실부분은 핸드폰 번호를 3개로 나눠 입력 받았던걸 여기서 합쳐서 넣습니다.

구분자로 "-"까지 넣어서 말입니다.

알고나면 정말 아무것도 아닌 내용이지요.

컨트롤러도 끝!!




4. Views 수정


/Views/Account/Register.cshtml

/Views/Account/Register.cshtml



@model Mvc5TestUser.Models.RegisterViewModel

@{

    ViewBag.Title = "등록";

}


<h2>@ViewBag.Title.</h2>


@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))

{

    @Html.AntiForgeryToken()

    <h4>새 계정을 만드십시오.</h4>

    <hr />

    @Html.ValidationSummary()

    <div class="form-group">

        @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })

        <div class="col-md-10">

            @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })

        </div>

    </div>

    <div class="form-group">

        @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })

        <div class="col-md-10">

            @Html.PasswordFor(m => m.Password, new { @class = "form-control" })

        </div>

    </div>

    <div class="form-group">

        @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })

        <div class="col-md-10">

            @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" })

        </div>

    </div>


    <div class="form-group">

        @Html.LabelFor(m => m.UserNick, new { @class = "col-md-2 control-label" })

        <div class="col-md-10">

            @Html.TextBoxFor(m => m.UserNick, new { @class = "form-control" })

        </div>

    </div>

    <div class="form-group">

        <label class="col-md-2 control-label" for="Hp1">휴대폰</label>

        <div class="col-md-2">

            @Html.DropDownListFor(m => m.Hp1,

            new List<SelectListItem> {

                new SelectListItem { Value = "010" , Text = "010" , Selected = true },

                new SelectListItem { Value = "011" , Text = "011" },

                new SelectListItem { Value = "016" , Text = "016" },

                new SelectListItem { Value = "017" , Text = "017" },

                new SelectListItem { Value = "018" , Text = "018" },

                new SelectListItem { Value = "019" , Text = "019" }

            },

            new { @class = "form-control" })

        </div>

        <div class="col-md-2">

            @Html.TextBoxFor(m => m.Hp2, new { @type = "number", @class = "form-control" })

        </div>

        <div class="col-md-2">

            @Html.TextBoxFor(m => m.Hp3, new { @type = "number", @class = "form-control" })

        </div>

    </div>

    <div class="form-group">

        @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })

        <div class="col-md-10">

            @Html.TextBoxFor(m => m.Email, new { @type = "email", @class = "form-control" })

        </div>

    </div>

    

    <div class="form-group">

        <div class="col-md-offset-2 col-md-10">

            <input type="submit" class="btn btn-default" value="등록" />

        </div>

    </div>

}


@section Scripts {

    @Scripts.Render("~/bundles/jqueryval")

}

색칠된 부분이 내가 추가한 부분이다.


닉네임은 그냥 평범하니 패스~


우선 핸드폰에서 Hp1 부분을 보자.

DropDownListFor를 사용했다.

그냥 이런것도 있다는 의미에서 사용했다.

블로그 작성용으로 안했다면...

그냥 select로 했을꺼다.

단순히봐도 구문만 길어졌다.;;

구문엔 그렇게 어려워보이는건 없으니깐 패스하자.


다음은 Hp2다.

<div class="col-md-2">

    @Html.TextBoxFor(m => m.Hp2, new { @type = "number", @class = "form-control" })

</div>

Hp2부분이다.

@type = "number"로 설정한 부분이 보일것이다.

이렇게해놓으면 html5의 input type="number"로 생성해준다.

조흔 기능이다~


이메일부분을 보자.

<div class="form-group">

    @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" })

    <div class="col-md-10">

        @Html.TextBoxFor(m => m.Email, new { @type = "email", @class = "form-control" })

    </div>

</div>

대단한건 아니고 저렇게 @type = "email"로 해주면 html5의 input type="email"로 생성해준다.

아이디 부분만 input type="text"로 받고..

@뒤쪽의 도메인 부분은 셀렉트 박스로 받는 형태도 많은데...

그냥 이렇게 했다. 개인 취향이다.;;


다음은 마스터 페이지 뷰 수정이다.


/Views/Shared/_Layout.cshtml

/Views/Shared/_Layout.cshtml



<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <meta charset="utf-8" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge" />

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>@ViewBag.Title - 내 ASP.NET 응용 프로그램</title>

    @Styles.Render("~/Content/css")

    @Scripts.Render("~/bundles/modernizr")

</head>

별다른건 아니다.

기본적으로 실행하면 익스플로어7버전으로 실행되어서..

부트스트랩이 춤을 춘다.

그걸 방지하기 위해 최신 브라우저의 문서모드로 실행하게 만든거다.

이것으로 기본적인 작업은 끝났다.




5. 실행


실행해서 등록페이지로 가보자.


몇개는 잘못된 형태로 입력해보았다.

그러면 그림의 빨간 테두리 같이 뭐가 잘못되었는지가 나타난다.

나처럼 입력하지말고....

정상적으로 입력하고 등록버튼을 눌러보자.

그리고 등록이 됐다면...

DB를 한번 까보자...


왼쪽이 새로 생긴 테이블이다.

여기 제일 중요한 AspNetUsers를 까보자.

오른쪽 상단이 테이블 디자인이고.. 오른쪽 하단이 들어있는 데이터다.

빨간 테두리를 잘보면 만들고자하는 컬럼이 잘 만들어졌고..

거기에 원하는 형태로 데이터가 들어가있는것이 보일것이다.


우선은 여기까지이다.

끝!




Posted by T.t.
: