본문 바로가기

Develop

[Xamarin] ResourceDictionary 관리 ResourceDictionary Xamarin 개발에서 Resource Dictionary는 반드시 사용하게 되는 클래스입니다. 특히 XAML 에서 Style 이나 IValueConverter, ContentTemplate, DataTemplate 등을 사용할 때 Resource Dictionary 를 사용하면 다른 XAML에서 공유하여 사용할 수 있습니다. 문제는 ResourceDictionary 를 분리하거나 합치는 방법을 모르면 하나의 파일 안에 모든 XAML 리소스를 관리해야 해서 Resoucre Dictionary가 매우 복잡해집니다. 이를 해결하기 위해 Resource Dictionary 가 다른 Resource Dictionary 를 참조하는 방법을 알려드리도록 하겠습니다. 아래 코드 한 ..
[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..
[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
[Spring] @NotNull, @NotEmpty, @NotBlank 차이 결론 String text 값에 따라 @Notnull / @NotEmpty / @NotBlank 결과가 어떻게 달라지는지 표로 정리했습니다. String text = null; AnnotationBoolean@NotNullfalse@NotEmptyfalse@NotBlankfalse String text = ""; AnnotationBoolean@NotNulltrue@NotEmptyfalse@NotBlankfalse String text = " "; AnnotationBoolean@NotNulltrue@NotEmptytrue@NotBlankfalse String text = "Hello, World!"; AnnotationBoolean@NotNulltrue@NotEmptytrue@NotBlanktrue @..
[Spring] Spring Security 설계 구조 들어가며... 저는 "프레임워크의 설계를 이해하고 있느냐 아니냐" 에 따라, 개발을 진행하면서 얻는 경험의 깊이가 다르다고 생각합니다. 프레임워크의 설계를 이해하고 있으면 프레임워크를 설계한 의도에 맞게 사용하고자 노력하게 되며, 이는 곧 좋은 코드를 만들려는 습관으로 이어지게 됩니다. 개발자는 레퍼런스 문서를 전부 읽고 개발을 시작하지 않습니다. 검색을 통해 여러 샘플 코드를 적용해보면서 프레임워크를 어떻게 사용해야 하는지 경험하게 됩니다. 이때 얻는 경험이 단편적인 지식으로 그치는게 아니라, 축적되는 지혜가 되기 위해서는 프레임워크 설계에 대한 이해가 필요하다 생각합니다. Spring Security (Servlet Application) Spring Security Overview는 Spring S..