본문 바로가기

모두보기

[Xamarin] 플랫폼 종속 코드 작성하는 방법 플랫폼에 종속적인 코드 작성하는 방법 Xamarin 은 플랫폼에 독립적인 UI를 만들 수 있도록 도와주기는 하지만, 플랫폼 별로 다른 이미지나 코드를 적용해야 하는 순간이 있습니다. 이때 플랫폼 별로 다른 값을 적용할 수 있는 방법을 알려드리도록 하겠습니다. 플랫폼 별 Code if (Device.RuntimePlatform == Device.iOS) { Padding = new Thickness(0, 20, 0, 0); } Devce.RuntimePlatform 을 활용해서 플랫폼 별로 다른 코드를 실행시킬 수 있습니다. Device 가 구분할 수 있는 플랫폼은 아래 목록과 같습니다. Device.Android Device.iOS Device.macOS Device.WPF Device.UWP Devic..
[UX 디자인 특강] 3장 디자인 기술 디자인 기술 이번 장에서는 좋은 디자인을 위해 사용할 수 있는 기술들을 설명해드리도록 하겠습니다. 첫째, 정보 노출 사용자가 제품을 사용하기 위해 사전에 외워야 하는 정보가 있다면 제품 디자인을 통해 정보를 외울 필요가 없도록 노출하는 것도 하나의 방법입니다. 다만 정보를 광고하듯이 노출시키는게 아니라, 어떤 방법으로 노출시킬지에 대한 고민이 필요합니다. 일상 생활에 자주 노출되는 정보 중 하나는 "와이파이 비밀번호" 입니다. 공개된 장소에서 와이파이에 접속하려면 비밀번호가 필요합니다. 하지만 어떤 곳은 비밀번호가 아예 없기도 하고, 대부분의 카페는 결제하는 곳에 붙혀둡니다. 또 영수증에만 공개하는 사업장도 있고, 와이파이를 사용하려면 회원가입을 해야하는 경우도 있습니다. "공공 와이파이" 를 하나의 제..
[UX 디자인 특강] 2장 단순한 디자인 단순한 디자인 개념 모델 (Conceptual Model) 이란 제품이 어떠한 원리나 방식으로 작동하는지에 대한 이해 입니다. 1장에서 설명드렸듯이 사용자가 제품을 단순하며 사용하기 쉽다고 느끼는데 필요한 건 작동 방식에 대한 이해 입니다. 이렇게 사용자가 머릿속에 개념적으로 가지고 있는 작동 방식에 대한 이해를 개념 모델 이라 합니다. 디자이너가 복잡함을 다스리기 위해 하는 작업은 시각적으로 단순한 디자인을 만드는게 아니라 사용자에게 알맞은 개념 모델, 즉 작동 방식에 대한 이해를 전달하는 작업입니다. 사용자가 제품의 작동방식을 얼마나 체계적으로 이해하느냐에 따라, 좋은 디자인인지 또는 나쁜 디자인인지를 판단할 수 있습니다. 특히 제품 개발 초기에 자주하는 실수가 쉽고 그럴듯해 보이지만 잘못된 해결책 ..
[UX 디자인 특강] 1장 복잡함을 다스리는 디자인 UX 디자인 특강 '복잡함'과 '혼란스러움'은 다르다. 일상 생활에서 경험하는 제품은 굉장히 복잡한 체계를 갖추고 있습니다. 스마트폰과 컴퓨터만 해도 너무 복잡해서, 새로운 앱이라도 설치하면 어떻게 사용해야 하는지 머리가 아픕니다. 그리고 일상에서 잘 의식하지 못하는 사회 시스템도 굉장히 복잡합니다. 매일 출퇴근할 때 이용하는 버스나 지하철은 우리가 익숙해져서 복잡함을 느끼지 못하지만, 해외 여행이라도 가면 그 나라 교통 시스템을 어떻게 이용해야 하는지 혼란스럽습니다. 사용자는 제품의 사용 방법을 배우는 일이 필요하다고 생각하면 복잡함에 대해 별로 신경 쓰지 않습니다. 예를 들어 엑셀을 처음 접하는 사용자에게 굉장히 혼란스러운 프로그램입니다. 워드나 파워포인트만큼 직관적이지 ..
[Spring] JPA Mapping - @ManyToMany @ManyToMany @ManyToMany 관계는 두 Entity 가 서로를 Collection 으로 가지게 되는 관계입니다. @Entity class Student { @ManyToMany(targetEntity=Course.class) Set selectedCources; } @Entity class Course { @ManyToMany(targetEntity=Student.class) Set registeredStudents; @ManyToMany 는 다른 형태로 변형할 수 있는 여지가 많은 관계입니다. @JoinTable 로 @ManyToMany 관계를 지정할 수도 있고, @ManyToOne 두 개로 관계를 변화시킬 수도 있습니다.
[Spring] JPA Mapping - @OneToMany / @ManyToOne @OneToMany / @ManyToOne @OneToMany 는 지정하는 객체는 하나이고, 연결되는 객체가 여러 개일 때 사용합니다. 연결할 때 mappedBy 속성으로 연결할 속성을 지정할 수도 있고, targetEntity 속성으로 연결할 Entity를 지정할 수도 있습니다. mappedBy 방식 @Entity @Table(name="CUSTOMER") public class Customer { @Id @GeneratedValue @Column(name="ID") public int id; // mappedBy 속성에 customer 속성을 연결한다. @OneToMany(mappedBy="customer") public Set orders; } @ManyToOne @JoinColumn(name="C..
[Spring] JPA Mapping - @OneToOne @OneToOne @OneToOne 관계를 정의하는 방법은 여러가지가 있습니다. Foreign Key 를 등록하는 방법 // Customer class @OneToOne // Foreign Key 를 참조할 곳을 지정합니다. @JoinColumn(name="record_id") public Record record; // Record class // Foreign Key 를 제공하는 속성을 지정합니다. @OneToOne(mappedBy="record") public Customer customer; Foreign Key를 제공하는 Entity와 제공받는 Entity로 생성됩니다. 제공받는 Entity는 반드시 @JoinColumn 으로 참조할 곳을 지정해줘야 하고, 제공하는 Entity는 제공받는 Ent..
[Spring] JPA Mapping JPA Mapping JPA Mapping 은 관계형 데이터베이스에서 테이블 간의 관계를 Java 언어로 표현하는 방법입니다. 관계형 데이터베이스라는 이름에서도 알 수 있듯이, 관계를 어떻게 표현하느냐에 따라 데이터베이스 전체 구조가 결정될 정도로 중요한 기능입니다. 데이터베이스에서 사용하는 관계는 아래 3가지 입니다. 일대일 One-to-One (1:1) 관계 일대다 One-to-Many (1:N) 관계 다대다 Many-to-Many (N:M) 관계 데이터베이스에 맞춰서, JPA 에서 제공하는 관계는 아래 4가지 입니다. @OneToOne @OneToMany @ManyToOne @ManyToMany