머리털이 하얘져도 못 느꼈는데
수염도 하얀게 나고
코털도 하얀게 나고
허나 다리털은 아직 하얀 것을 못봤는데
다리 사이털은 하얀게 나네
'nobang이야기'에 해당되는 글 1951건
- 2022.09.26 늙어 간 다는 것을 느끼는 순간
- 2022.09.23 [Buffalo] 계층구조로 만들기.
- 2022.09.22 층간소음 20220922 1
- 2022.09.14 [Buffalo] model 관리(추가,삭제)
- 2022.09.14 [Buffalo] action 생성하기
- 2022.09.07 [Buffalo] 프로젝트 첫 실행
- 2022.09.07 [Buffalo] project 생성 후 Error: you need to be inside your buffalo project path to run this command
- 2022.09.07 [Goland] WSL에서 Git 경로 설정하기
- 2022.08.30 내가 나를 신고할 뻔. 1
- 2022.08.11 솜이랑 싸운 이유
golang framework 중 하나인 buffalo에서
생성은 액션명만 주면 되는데
계층구조로 만들려면 이름을 계층을 줘서 만든다
1. action
추가는
buffalo g a aaa list
이렇게 하면 aaa는
app.go 에 app.GET("/aaa/list", AppList) 가 추가되고
aaa.go 파일, aaa_test.go 가 생성된다.
templates에 aaa 폴더 아래에 list.plush.html 이 추가된다.
buffalo g a bbb/bcd list
이렇게 하면 bcd 는
app.go 에 app.Get("bbb_bcd/list", BbbBcdList) 가 추가되고
actions/bbb 폴더 아래에 bcd.go, bcd_test.go 가 생성된다
templates/bbb/bcd 아래에 list.plush.html 가 추가된다.
삭제는
buffalo destroy action aaa 를 하면 생성됐던 파일 및 app.go의 설정이 지워진다.
그러나, 계층구조로 만든 경우에는
bbb/bcd 를 bbb_bcd 로 변환하기 때문에 파일을 찾지 못해 삭제가 되지 않는다.
삭제는 수동으로
ps : action 생성시 기본은 GET 인데 Post 로 만들 때에는 --method POST 를 추가하면 된다
ex) buffalo g a aaa list create --method POST 를 하면
app.go에 list는 get으로 create는 post로 설정된다.
2. resource
action은 만들고 싶은것들을 하나하나 설정할 때 사용하고
resource는 list,show,create,update,destroy를 한번에 생성하여 관리할 때 사용한다.
app.go 에서는 app.Resource("이름", xxxResource{}) 로 설정된다.
장점은 구조만 맞으면 작업량이 줄수 있지만 추가 설정을 하려면
조금 복잡하다.
추가는
buffalo generate resource "리소스이름" "생성할 컬럼명"
ex) buffalo generate resource efg title desc 를 하면
efg 그룹에 crud가 생성되고 efg table에 column으로 id, title, desc 가 정의된다.
리소스는 그룹으로 만들 수 없다.
eee/efg 로 만들려고 해도 eee_efg로 변경하여 생성된다.
table의 경우 마지막 언더바(_) 이후에 s를 붙여서 생성한다.
eee/efg -> eee_efg -> efg -> efgs 로 table명이 정해진다.
create table efgs
삭제는
애초에 변환해여 생성하므로 삭제도 가능하다
buffalo destroy resource efg
buffalo destroy resource eee/efg -> 생성할 때 eee/efg로 생성해도 eee_efg로 생성
리소스는 이름에 주의를 하면 된다. 언더바 사용하지 않는것이 좋고
즉 버팔로 가 정의한 구조에 딱맞으면 resource를 쓰고 안맞으면 actions로 일일이 설정
계층구조로 만들면 삭제는 수동으로 해야한다는 것.
하... 00시 27분
웬 망치소리가...
이 시간에
이제는 읽씹이라 더 화가난다
buffalo 는 buffalo-pop을 통해 model(table)을 관리한다.
buffalo pop g m abc 를 하면 연결된 db에 abc라는 table이 생기고
migrations 폴더아래에 up, down 파일이 추가된다.
관리 편의를 위해 구조를 적용하려면 모델이름에 경로를 사용하면 된다.
buffalo pop g m abc/def 를 하면 models 폴더 아래 abc 폴더 아래에 해당 모델이 추가된다.
삭제는 반대로 하는데
생성은 buffalo pop 인데, 삭제는 하이픈이 있다. buffalo-pop
buffalo-pop destroy model 모델명
ex) buffalo-pop destroy model user 를 하면
먼저 모델을 삭제할 지 묻고, migration도 삭제할 것인지 묻는다
y 를 눌러야 삭제 됨.
buffalo-pop destroy model user
Want to remove model? (y/N)y
INFO[0003] - Deleted models/user.go
INFO[0003] - Deleted models/user_test.go
Want to remove migrations? (y/N)y
INFO[0007] - Deleted migrations/20220914044342_create_users.up.fizz
INFO[0007] - Deleted migrations/20220914044342_create_users.down.fizz
실제로 해당 폴더에 파일들이 삭제되었는지 확인한다.
폴더구조로 추가한 경우 model과 migration 이 따로 논다 ㅡㅡ
abc/def 로 생성을 한 경우 model은 동일하게
buffalo-pop d m abc/def 로 하면 abc_def로 바뀌어서 삭제 시도를 한다.
migragions에서는 끝에 s 를 붙여서 시도한다.
파일명이 다르면 삭제가 되지 않으므로 꼭 확인해야 한다.
buffalo-pop d m abc/def
Want to remove model? (y/N)y
INFO[0002] - Deleted models/abc_def.go
INFO[0002] - Deleted models/abc_def_test.go
Want to remove migrations? (y/N)y
migrations 가 제대로 지워지지 않은 경우 이름을 고려해서 다시 호출해 본다.
buffalo-pop d m abc_def
Want to remove model? (y/N)y
INFO[0003] - Deleted models/abc_def.go
INFO[0003] - Deleted models/abc_def_test.go
Want to remove migrations? (y/N)y
INFO[0005] - Deleted migrations/20220914054656_create_abc_defs.up.fizz
INFO[0005] - Deleted migrations/20220914054656_create_abc_defs.down.fizz
models/abc/def.go 가 그대로 남아있다 ㅡㅡ;
migrations에서 정상적으로 삭제 되었으면 model 폴더아래에 있는 abc 폴더의 파일을 직접 삭제한다.
bufallo 에서 action 생성명령은 g(generate) a(action) 이다.
buffalo g a 액션명
buffalo g action 액션명
buffalo g actions 액션명
하지만 그냥 액션명을 하면
actions 아래에 바로 생긴다.
로직이 많아지면 복잡해지므로 package를 추가하는 것이 좋다
buffalo g a te/tt show index create 를 하면
actions/te/ttt.go
actions/te/ttt_test.go 파일이 생성된다.
뒤에 show, index, create는 routing 과 template 파일을 생성하기 위한 것임.
추가한 action을 삭제하려면 d(destroy) 를 사용한다
buffalo d action 액션명
방금 추가한 te/ttt를 삭제
buffalo d action te/ttt
Want to remove actions? (y/N)y
INFO[0003] - Deleted actions/te_ttt.go
INFO[0003] - Deleted actions/te_ttt_test.go
INFO[0003] - Deleted References for te_ttt in actions/app.go
actions/app.go 에 가보면 route에 추가되어있던 te/ttt 관련사항이 삭제된 것을 확인할 수 있다.
buffalo create 로 프로젝트를 생성( buffalo new mypro --db-type mysql )
buffalo dev 를 실행하면
찍히는 log 중에
starting application
starting simple server on 127.0.0.1:3000
starting Simple background worker
가 나오면 정상적으로 실행이 된 것이다.
그래서 localhost:3000 으로 접속을 해 보면
똬란~ 이 아니라... 500 - Error 가 남.
couldn't start a new transaction: could not create new transaction: Error 1049: Unknown database 'mypro'
db접속을 해야하는데 database가 없어서 나는 에러이다.
database.yml에 db 접속정보가 있기 때문에
해당정보로 DB 설정을 시켜야 한다.
buffalo pop create -a
db는 test, develope, production 세가지가 필요하며 이미 있으면 생성이 되지 않고 에러가 난다.
처음 프로젝트를 만들었고 새로운 db를 생성하는 것인데 생성도중 에러가 나면
삭제하고 다시 생성해야한다.
buffalo pop drop -a
모든 db가 삭제되는 것이 아니고 database.yml 로 생성하려고 한 db들(test, dev, prod)을 날리는 것이다.
삭제가 다 되었으면 다시 생성명령(buffalo pop create -a) 을 실행해서 db 생성하고
buffalo dev
하면 정상적으로 서버가 가동되고 localhost:3000으로 접속하면 똬란~~~ Welcome to Buffalo 라고 나온다.
[Buffalo] project 생성 후 Error: you need to be inside your buffalo project path to run this command
golang 을 이용한 framework 로 buffalo 가 있다.
buffalo create <프로젝트명> 을 하면 프로젝트가 생성되는데
buffalo dev 를 하면 서버가 실행되어서 기본설정인 경우 localhost:3000으로 접속하면 똬란~ 하고 나와야 하는데
Error: you need to be inside your buffalo project path to run this command
저게 뭐냐...ㅡㅡ;
프로젝트 생성한 뒤에 생성한 프로젝트에서 실행시켜야 하는데 바로 buffalo dev를 해서 그렇다 ㅋㅋㅋ
cd <프로젝트명> 을 해서 생성한 프로젝트 안으로 들어가서 하면 됨.
ㅡㅡ.
분명히 터미널에서 git version으로 확인했을 때 git이 설치되어 있는 것이 확인되는데
"Git이 설치되지 않았습니다.
Git 프로세스가 1 코드와 함께 종료되었습니다." 하고 다운로드 및 설치가 나오는데
다운로드 설치누르면 윈도우에 설치하려고 한다. ㅡㅡ;
설정 법은 다음과 같다.
터밀널에서 git 설치 경로를 확인한다 : which git
/usr/bin/git
Settings > Version Control > Git 에서 Git 실행파일 경로를 설정하게 하면 된다.
(한글일때 : 설정 > 버전관리 > Git)
wsl 안의 경로이므로 \\wsl 로 찾아가야 한다.
\\wsl$\Ubuntu-20.04\usr\bin\git
(폴더에서 경로 찾기)
경로설정을 하고 "테스트" 버튼으로 적용을 테스트 한다.
토요일 오후까지 자전거를 탔다.
일요일 저녁에 보니 이런... 자전거 자리에 자전거가 없다.
상태도 그리 좋지 않은데 누가 가져갔지?
월요일 아침에 비가와서 자전거를 타고가지는 않았는데
이런걸 훔쳐가다니...
'이거는 가만두지 않겠다'하며 CCTV를 확인해보았다.
그리고는 범인을 찾을 수 있었다.
자전거를 타고 나가서는 오이 두개를 손에 들고 걸어오는 나...
큰일이네 ㅎ
며칠 전 솜이랑 대판(?) 싸웠다 ㅋㅋㅋ
가위 바위 보를 하는데
오른손에 가위를 하고 있었다.
가위~ 바위~
보! 를 하는 순간에 오른손은 뒤로
왼손을 내밀며 보자기를 냈다
솜이는 가위를 보고 주먹을 냈는데
나보고 반칙이라고 했다.
나는 가위바위보는 보 낼때만 중요하다고
그 전에 보여주는건 상관없다고 했다.
하지만 바꾸는 건 반칙이라며
한참을 우기더니
자기방으로 가서 문을 닫았다.
문에 기대 앉아 한참을 있었다
이런 싸움을 언제까지 할 수 있을 지
ㅎㅎㅎ