# trait

8개의 포스트
post-thumbnail

[Scala] trait는 언제 사용하는 것이 좋을까

trait는 코드 재사용의 근간이 되는 것으로, Scala의 가장 강력한 도구 중 하나이다. 그렇다면 모든 곳에 trait를 사용해도 되는것인지, 아니면 때에 따라서는 class 하나로 구현해도 되는지 알아보았다. 확고한 규칙이 있는 것은 아니지만 여러 문서나 책에 나와 있는 가이드라인을 정리하였다. 1. 어떤 행위를 재사용할지 여부 만약 어떤 행위를 재사용하지 않을 것이면 클래스로 만들어야 한다. 2. 서로 관련이 없는 클래스에서 어떤 행위를 여러 번 재사용 위와 같은 경우에는 트레이트로 작성해야 한다. 클래스 계층의 각기 다른 부분에 미스인할 수 있는 것은 트레이트 뿐이다. 3. 스칼라에서 정의한 내용을 자바 코드에서 상속해야 한다면 추상 클래스를 사용하는 편이 낫다. 자바에는 코드가 들어있는 트레이트와 유사한 개념이 없으므로 자바 클래스에서 트레이트를 상속하기 애매한 경우가 많다. 대부분의 경우 스칼라 클래스를 자바 클래스가 상속하는 것은 자바 클래스를

2023년 8월 16일
·
0개의 댓글
·
post-thumbnail

[Scala] trait

이 글은 Programming in Scala 4/e Chapter 12를 읽고 작성한 글입니다. 스칼라에서 trait는 코드 재사용의 근간을 이루는 단위이다. 트레이트로 메서드와 필드 정의를 캡슐화하면 트레이트를 조합한 클래스에서 그 메서드나 필드를 재사용할 수 있다. 하나의 슈퍼 클래스만 갖는 상속과는 달리, 트레이트의 경우 몇 개라도 혼합해 사용(mix-in)할 수 있다. 이 챕터에서는 트레이트를 유용하게 사용할 수 있는 방법 2가지를 알아본다. (1) 간결한 인터페이스(thin interface)를 활장해 풍부한 인터페이스(rich interface)를 만드는 것 (2) 쌓을 수 있는 변경(stackable modification)을 정의하는 것이다. 밑에서 위의 내용들을 자세히 정리하려 한다. > 풍부한 인터페이스(rich interface)와 간결한 인터페이스(thin interface) 풍부한 인터페이스 : 많은 메소드

2023년 8월 16일
·
0개의 댓글
·
post-thumbnail

PHP 변수 및 메소드 사용 정리

나무위키 처럼 새로운 정보가 생기면 수시로 업데이트될 예정 > 마지막으로 업데이트 날짜 : 2023-02-09 php 함수 및 설명 echo 줄바꿈 .= 다른 메소드로 사용하던 += 가 php 에서는 .= 로 바뀐거라고 생각하면 된다. if문 do while for문 array_push (push함수) 배열의 길이 전역변수 php 에서는 다음과 같이 전역변수를 선언해주지 않으면 전역변수로 사용을 할수가 없다. 파일로 저장 > fileputcontents(파일명, 파일 내용) 과 같은 형태로 내가 원하는 데이터나 값을 파일로 저장할 수도 있다. 그리고 위에 블럭처럼 사용도 가능하다. explode explode 는 자바스크립트에서 사용하던 sp

2022년 11월 14일
·
0개의 댓글
·
post-thumbnail

[Laravel 9] 라라벨 테스팅 만들기 with Trait, Factory

라라벨로 테스팅 클래스 만드는 방법입니다. 추가적으로 Trait 및 Factory 기능도 사용했습니다. velog로 티스토리 글을 마이그레이션할 자신이 없어.. 이렇게나마 링크로 공유해드립니다. 바로가기

2022년 10월 28일
·
0개의 댓글
·

[RxSwift] - Generic 을 활용한 리펙터링

지난 포스트에서 Generic을 활용하여 코드를 단축하는 방법에 대해 연구해보았다. 그렇다면 이번엔 정말로 긴, 긴 코드를 줄여보자. 단순히 Decode정도가 아닌. > ### Problem "피플"은 Single, Observable을 정말 많이 리턴한다. 코드를 살펴보자 Calendar Manager의 fetchFive라는 함수이다. 최근 5개의 CalendarModel을 리턴한다. Single 로 리턴한다. 다른 코드들 또한 이러한 형식을 많이 따른다. request에 필요한 파라미터를 담고, 리퀘스트를 디코딩해서 결과를 얻어 Bind한다. 그런데, 벌써 코드가 30~40줄 정도가 되는 것 같다. 이러한 함수가 20 ~ 30개가 되니 코드의 양은 너무 방대해져버렸다. Param과 Path를 인자로 받아 원하는 타입의 Single을 리턴하는 함수를 만들어보자. 선언은 이렇게한다. path 와 type, 그리고 파라미터는 없을 수도 있으니까 옵셔널로 받는다

2022년 4월 21일
·
0개의 댓글
·
post-thumbnail

Trait를 이용한 게시판 만들기 - 2

제가 나중에 활용하기 위해 또는 공부를 위해 작성한 코드입니다. 이미지 처리를 위해 "Intervention Image"를 사용하였습니다. 참고만 하시는게 정신건강에 도움이 됩니다. 1. 커스텀 헬퍼 코드 2. TraitBoard 코드 3. BoardController 코드 이상입니다.

2021년 8월 5일
·
0개의 댓글
·
post-thumbnail

Trait를 이용한 게시판 만들기 - 1

여러가지로 활용 가능한 게시판 코드를 작성해보았습니다. 기본적인 기능만 구현을 하였습니다. 응용이 필요한 게시판 코드입니다. 1. 커스텀 헬퍼에 게시판 route 생성 함수 >위와 같은 방식으로 커스텀 헬퍼에 함수를 생성합니다. where메소드를 통해 "파라미터"를 제한합니다.(정규표현식으로도 제약 가능) 2. route.php에 함수 입력방법 >위의 "middleware"에 "level:admin"의 변수를 첨가하여 "관리자 페이지"에는 회원등급이 관리자가 아니면 접근 못하도록 제한합니다. 그리고, 함수 "adminboardroute"를 작성합니다. 이 함수 하나면 게시판 관련 모든 route가 자동으로 생성됨. >>BoardController::class라고 작성하면, "BoardController"의 모든 클래스가 포함된다는 의미이다. 다른 방법도 있겠지만, "test1"이라는 게시판을 생성하고 게시판 코드를 저렇게 입력하면, 입력된

2021년 8월 5일
·
0개의 댓글
·

TraitMenu - getMenus

laravel에서 trait를 이용한 트리구조 메뉴 만들기 >예를 들어 아래와 같은 데이터를 DB에서 가져왔다고 가정을 한다. 위의 데이터는 아래의 과정을 거쳐서 트리구조의 배열(객체)로 변한다.

2021년 4월 9일
·
0개의 댓글
·