반응형

 
이사를 하게 되면 항상 고민에 빠지게 되는 것이 인테리어 입니다.
간단하게는 도배, 바닥, 수리, 커튼 , 가구 교체 등이 있을테고 큰 공사를 하게 되면 전체 인테리어 시공까지 하게 되죠.

제가 경험했던 전체 인테리어 경험담을 한번 정리를 해보고자 합니다. 
 
 

1. 전체 인테리어 시공을 결정하다.

저희 가족이 드디어 정착(?)을 해야 겠다는 마음을 먹고 집을 사서 이사를 하게 되었습니다.
그러면서 와이프와 의기투합이 되어 "집을 살거면 인테리어도 해야지.. 오래오래 살건데~" 라는 생각을 하고 드디어 인테리어에 대한 고민을 시작하였습니다.
 
저희는 일단 코~지하고 모~던한 느낌(?)의 집으로 꾸미고 싶어서 디자인을 먼저 생각했습니다.
그리고 그다음이 예산 이었는데요.
 
이제 인테리어 업체를 찾아보고 견적을 받게 되면 현실적인 문제에 부딪치게 됩니다.
저희도 견적을 받고 공사를 진행하는 동안 예산이 많이 변경이 되었거든요.
저의 경우에는 인테리어 에 들어가는 예상 비용의 변화가 크게 3번정도 있었는데요.
1. 디자인 업체 방문하여 가견적을 받을때 ,
2. 업체 선정후 실사 후 견적 변경할때 ,
3. 철거 공사때 실제 집의 주방 바닥 상태 때문에 철거 및 보수 공사 필요할때 ,
이렇게 큰 비용 변경이 발생 했었습니다.
 

현재 잡고 있는 예산에서 1000만원 정도 낮게 시작했어요.
이건 저희가 잘한 부분이라 생각되는 것이, 인테리어 공사를 진행하면서 여러가지 변수들이 발생하는데 이것 저것 변경 하다보면 1000만원이 금방 넘기게 됩니다. 그래서 나중에는 무엇인가 포기하거나 추가 비용을 감당해야합니다.

 

 

2. 디자인 회사와 계약하기

맨 먼저 했던것이 인터넷에서 집 주변의 인테리어 업체들을 찾아보고 견적을 받아봤습니다.
막상 인테리어 업체로 찾다보니 뭔가 좀 이상했습니다. 예전에는 인테리어 업체는 회사 이름이 XXX 인테리어 였는데 이번에 찾아보니 대부분 XXX 디자인 이더군요. 그래서 디자인 업체들로 찾아보기 시작했습니다.

 

 # XXX 디자인 으로 검색하기


막상 처음 찾아간 곳에서 "이야기를 뭐 부터 해야" 하는 고민 부터 시작 했는데요.
 
공사 범위, 자제, 그리고 인테리어 업체에 따라 비용이 모두 다릅니다.
저는 일단 전체 인테리어 시공을 기준으로 얘기를 먼저 했습니다.
 
이렇게 여러 업체들을 만나보면서 이야기를 해보고 견적을 받아보고, 해당 인테리어 회사의 시공 포트폴리오를 살펴보면서 우리와 맞는 인테리어 업체를 찾아야 합니다. 

 
여러 업체를 만나서 이야기 하다보면, 우리와 코드가 맞거나 금액적으로 마음에 드는 업체가 나타나기 마련입니다.
여기에서 무엇을 우선으로 결정할 것인가 고민을 해야하죠. 
업체들간에 비용차이가 있어서 고민이 되겠지만 무엇보다 공사 결과가 만족스러워야 하는 것이 가장 핵심이기 때문에 이를 고려해서 결정해야 합니다. "200만원 싸게 했는데 근데 디자인이 맘에 안들어" 이럴 수 있거든요.
 
인테리어 업체들은 다양한 방식으로 견적을 내고 공사를 진행합니다.
어떤 업체는 excel 파일에 시공 목록을 적고 그대로 공사를 진행하는 곳도 있고, 
건축 도면에 표시하면서 견적을 뽑는 곳도 있고,
비용 얼마라고 하고 컨셉을 정하면 전체를 알아서 하는 곳도 있고,
3D로 도면을 그려서 대략적인 모습을 같이 보면서 하는 곳도 있습니다.
 
저는 가 계약때 해당 업체가 시공해놓은 포트폴리오와 계약후 3D도면으로 시공후 예상 이미지를 만들어서 함께 공사 방향을 결정한다는 것 때문에 업체를 선정했습니다. (어반 디자인 이라는 곳과 계약을 했습니다.)

저희가 최종으로 선택해서 계약했던 디자인 업체입니다.

그리고 그 결정이 신의 한수였던것 같습니다.
디자인 회사에서 몇일 후에 도면을 만들어서 보내줬는데, 그걸 보니까 집이 대략 어떤 모습일 것인지가 머리속에 선명하게 그려져서 원하는 것들을 명확하게 디자인 회사와 이야기 할 수 있었습니다.

그러면서 공사 내용에 여러가지 옵션들을 디자인 회사 사장님이 설명해주고 여기에 이렇게 들어가면 비용이 추가되고 다른 자제로 하면 비용을 줄일수 있고 이런 이야기들을 하면서 최종적인 인테리어 공사 범위를 설정하게 됩니다. 
 
그리고 비용에 맞출것인지, 아니면 디자인에 맞출 것인지 고민을 해야 합니다.
(경험상으로 아무리 비용이 많다 하더라도  계속 욕심이 생겨서 비용은 부족한것 같습니다.ㅜ_ㅜ)
결국 적절한 타협이 필요합니다.
 

아직은 어떻게 할것인지 결정하지 않았기 때문에 인테리어 업체가 기본적인 가견적을 냅니다.
이렇게 나온 가견적을 바탕으로 자제 선택을 하다보면 견젹이 변하게 되고, 실제 이사 갈 곳을 실사 후에 견적을 다시 뽑게 됩니다.
 
기본 적인 자제 선택
자제 선택시 제가 고민했던 것들을 따로 정리해놓은 것이 있습니다. 이 부분 한번 확인하시는 것이 좋습니다.
인테리어시 알아두면 좋은 팁
https://spikez.tistory.com/501

 

# 인테리어시 알아두면 좋은 팁

인테리어 하실때 알아두면 좋은 아이템이나 팁을 적어봤습니다.# 융스위치 :- 유럽 스타일의 스위치로 네모 받듯하고 세련된 느낌을 줍니다. 인테리어 후에 만족감이 상당히 높습니다.- 다른 스

spikez.tistory.com

 

# 컬러 = 조명

 

일단 전반적인 다자인 톤을 정하는 것이 좋습니다.
인터넷에서 잘 되어있는 다양한 인테리어 사진들을 보시면서 어떤 톤이 좋은지 잘 살펴보시고 방향을 정하는 것이 집의 전체적인 조화에 도움이 됩니다.
하지만 이때도 몇가지 간과해서는 안되는 것들이 있습니다.
- 인터넷의 사진들은 필터나 보정, 그리고 조명이 들어가 있는 사진들입니다.
따라서 색상에 대해서는 신뢰할 수 없습니다. 저희도 실수를 할뻔 했던 부분입니다.
따뜻하고 아늑한 느낌을 주고 싶어서 바닥, 벽지, 이런거 고를때 약간 아이보리가 들어간 화이트, 그리고 노란빛이 들어간 강마루 등을 선택하려 했었습니다. 그런데 그렇게 하면 실제로는 더 과해진다고 합니다.
사진에 나오는 느낌은 벽지에서 나오는 것이 아니라 조명에서 나온다고 하더군요.
조명을 주광색을 쓰느냐, 주백색을 쓰느냐, 전구색을 쓰느냐 에  따라 화이트 벽지가 아늑한 빛을 띄기도 하고 밝은 빛을 띄기도 한다고 하더군요. 그래서 벽지, 마루는 채도가 낮은 것으로 하는것이 세련되 보이고 나중에 조명에 의해서 여러 분위기를 연출 할 수 있다고 합니다.
 
2. 인테리어만 잘 하면 멋진집이 되는 것이 아니라, 가구와도 잘 어울려야 합니다.
인테리어를 해놓고, 가구가 들어와 있지 않은 상태에서는 깔끔은 하지만, 뭔가 허전합니다.
가구들이 들어와야 비로소 뭔가 완성된 느낌이 듭니다.
그래서 가구들의 색상도 고려해서 인테리어가 되면 더더욱 좋겠죠.
 
 
- 마루: 마루의 종류도 다양한데, 강마루(강화마루), 장판, 대리석, 원목마루 등등이 있습니다.
가격은 원목마루가 강마루 보다 비쌉니다.나무 느낌은 원목 마루가 더 좋습니다.
관리는 원목마루가 힘듭니다. (잘 찍히고 손상 되기 쉽다.)
강마루는 다양한 형태, 무늬 등이 있습니다.물에 약하긴 하지만, 물이 고여서 장시간 방치될 경우이고 금방 닦아 내면 아무런 문제가 없습니다. 그래서 가장 조심해야 하는 곳이, 주방 싱크대 밑이 되겠죠.
강마루의 판 크기가 클수록 인테리어했을때 훨씬 보기가 좋습니다. 대신 단가가 작은것 보다 비쌉니다.
광폭 마루들도 많이 나오기 때문에 인테리어 사장님과 함께 잘 선택해보시면 좋습니다.
- 타일: 거실 바닥용 타일은 크기가 클수록 고급스럽게 보여서 크게 하는 경우들이 많습니다. 600각
   타일을 제료로 공사하는 부분은  현관, 욕실 바닥, 욕실벽, 베란다 바닥 , 정도가 주가 됩니다.
   추가적으로 거실, 주방 바닥, 주방 벽면 등에도 경우에 따라서는 해볼수 있죠.
- 필름:  보통은 필름으로 주방 벽, 방문, 문틀, 목공, 샤시, 철문 등에 필름 작업을 하게 됩니다.
요즘 도배를 실크 벽지 말고 필름으로 하는 경우들도 있다고 합니다. 이 부분은 디자이너분과도 상의 하고 예산도 생각해서 결정해야 하는 부분입니다.
- 싱크대 수전, 문 손잡이, 샤워기, 세면대 수전, 세면대, 변기, 등등 많은 부분들을 상의하면서 결정해야합니다.
이런 것들을 하다보면, 좋은것, 예쁜것들이 눈에 들어오고 비용이 올라가게 됩니다.
하지만 이때까지 융통할 수 있는 예산을 풀로 다 채우면 안됩니다. 예상치 못한 변수들이 튀어 나오거든요.
물론 욕심을 버리고 자제를 바꾸거나 공사 범위를 축소시키거나 하는 방법으로 공사를 진행하면서 조정도 가능한 부분들이 있죠.. 
 

 

3. 공사 시작(철거)


맨 처음 하는 것이 철거 부터 시작합니다. 가장 소음이 크고 진동이 심한 작업이죠.
그 뿐만 아니라 철거를 하면서 예상치 못한 공사 범위들이 나오게 됩니다.
벽에 금이 너무 심하게 가있다거나, 바닥 보일러 배관에 문제 있다거나, 화장실 배수구가 막혀있다거나, 외벽에 곰팡이가 있고 물이 센다거나 다양한 형태의 예상치 못한 것들을 발견하게 됩니다.
이런것들이 공사 기간이 늘어나게 하고 비용이 추가되게 만드는 요소 입니다.
 
저희 같은 경우에는 현관 바닥도 뜯어서 타일 교체를 하려고 했는데, 사장님이 바닥 몇개를 뜯어보시더니, 위험하다고 하시고 밑이 사모래로 되어있어서 뜯어내고 하면 시멘트 공사를 다 다시해야 한다고 비용이 많이 추가될거 같다고, 덧방으로 가는것이 어떠냐고 이야기 해주셨습니다.
현관은 기존에도 바닥이 고른 편이었고 깨진곳도 없어서 덧방으로 비용 추가 없이 진행하게 되었습니다.

철거를 하면 뭐 이런 상황이 됩니다.

 

4. 보수작업

바닥, 벽, 천장등 보수 작업을 진행하면서 고르지 못한 바닥, 벽면을 고르게 하고, 새로 세울 가벽의 위치나 전기 배선을 위한 공간 확보, 보일러 작업 등을 진행합니다.

 

5. 거실작업/ 주방 작업

어찌보면 인테리어의 핵심은 거실과 주방입니다. 가장 큰 변화를 느낄 수 있는 부분입니다.
그래서 거실과 주방에는 힘을 많이 주는 것이 좋겠죠( 물론 과하게 하라는 것은 아니고, 음.. 아무튼 가장 눈이 많이 가는 부분이다.. 이런 말이죠)
예를 들자면, 전등 스위치만 하더라도, 다른 곳은 일반 스위치를 하더라도 거실에는 융 스위치를 한다거나, TV쪽 벽에는 콘센트가 아예 보이지 않도록 깔끔하게 한다거나, 뭐 이런거죠.
 
주방 역시 싱크대, 식탁 등 다른 방과 차별된 요소가 많기 때문에 여기에 힘을 좀 주는 것이 좋겠죠.
요즘 대면형 주방도 인기가 있으니 이런 부분들에 대해서도 검토 해보면 좋을것 같네요.
 

6. 전기 공사

기본적으로 전기를 사용해야 하는 부분들 몇가지가 있습니다.
인터폰, 보일러 조절기, 조명, 콘센트 위치등을 잡아야 합니다. 기존의 위치에 설치할 수도 있고 미관상 다른 곳으로 옮길 수도 있겠죠.
방에서 가구 배치에 따라 콘센트 위치를 바꾸고 싶기도 할것이고요.
 
 

7. 보강 공사, 목공

목공 및 보강 공사가 들어가게 되면, 슬슬 집안의 형태가 잡혀가기 시작합니다.

벽면이나 가벽, 문선 등의 작업이 이뤄지고 이때부터는 매일 밤에 공사 끝나면 가서 뭐 되었는지 보는 재미가 있었습니다. ^^;;

 
 
 
 

8. 타일, 도배, 목공 공사, 마감 작업

타일이나 목공, 도배가 끝나기전에는 완성되었을때 어떨지에 대한 상상이 안되서 불안한 부분들이 있었습니다.
이런 불안은 도배가 될때까지 미뤄두는 것이 좋고, 공사 현장을 둘러보면서, 이상한 부분이 없는지 잘 살펴봐야 합니다.
타일과 도배까지 끝나면 목공 가구들이 들어와서 배치됩니다.
 
도배가 끝나고 나면 집이 확~ 넓어진 느낌이 듭니다. 
그리고 실리콘 마무리 작업까지 완료 하면 드디어 인테리어 공사가 끝납니다.
 

 

9. 이사

공사가 끝나고 이사 과정에서 어찌나 조마 조마 하던지요.. 바닥이며 벽이며 파손이 생길까봐 걱정을 엄청 했습니다.
역시나 몇군데 파손이 발생했더군요. (마루 바닥이 심각하게 찍혀서 유상 AS 진행)
이사짐이 들어오고 가구가 배치되고 나니 집이 완성되었다는 느낌이 들었습니다.
 

 
 
몇달을 생활을 하고 보니, 깨끗한 집을 유지하기 위해서는 가장 중요한건, !! 청소라는 것을 깨닫게 되었습니다. ^^

 
이상 저의 인테리어 이야기를 마침니다. (뭔가 이사 보고서 같은 느낌 이네요?)

반응형


스타필드 노티드 다녀왔어요.

도넛 좀 사고~~
맛있게 먹겠습니당.

'일상' 카테고리의 다른 글

썬 앤 식스  (1) 2024.07.26
영어공부  (0) 2023.09.25
가고싶은 여행지 링크  (0) 2014.07.17
근대 과학의 정모  (0) 2010.06.05
돌고있는 방향이 어느쪽인가요?  (0) 2010.06.04
반응형

 

소프트웨어 설계를 하다보면 디자인툴이 필요할때가 있습니다.

저도 설계를 진행하거나 아이디어 도출 단계, 그리고 시나리오 분석할때 UML을 자주 사용하는 편인데요.

UML 툴중에 GUI를 이용한 툴을 많이들 사용할겁니다.

 

저는 Plant UML을 자주 사용하는 편입니다.

 

텍스트로 입력해서 UML을 그려주니까 uml 을 그릴떄 선이나 위치 모양 등에 대해서 좀 신경을 안쓰고 타이핑(텍스트) 되어있는 이름과 플로우를 보면서 코딩되면 어떤 모양일지 생각해보게 되어서 좋은것 같습니다.

 

물론 단점도 있죠.. 텍스트로 입력하다보니 PlantUML 문법을 좀 알아야 하고, 마음에 드는 모양을 만들기가 좀 힘들긴 합니다.

그래서 보고용으로는 좀 별로인듯 한데,  근데 또 이것이 보고용 자료 만들때도 마음은 편해요.

Plant UML로 작성하겠다고 하고 진행하면, 나중에 아웃풋(결과물)에 대해서 "왜 이거 이렇게 그렸어? 모양이 맘에 안드네" 이런 말을 않고 넘어가게 되는 것 같아요... Plant UML은 원래 안되... 지가(프로그램이) 알아서 해줘.. 라는 인식? 때문에 그런듯 합니다.

 

 

아무튼 제가 자주 사용하고 있던 opensource로 운영되는Plant UML 에디터 사이트를 알려드겠습니다.

그리고 간단히 서버를 로컬에서 실행하는 것도 적어보겠습니다.

 

이 사이트가 열악한것인지 네트워크 연결이 안좋은것인지는 모르겠으나 uml을 작성하다 보면 종종 랙이 걸리거나 반응이 느릴때가 있어서 불편해서 로컬에서 사용하기 시작했습니다.

 

PlantUML 

PlantUML 에 대한 문법과 사용 가이드가 있는 사이트 입니다.

https://plantuml.com/ko/

 

간단한 텍스트를 이용하여 멋진 UML 다이어그램을 만들 수 있는 오픈소스 도구입니다.

간단한 텍스트를 이용하여 쉽게 멋진 UML 다이어그램을 만들 수 있으며, 다양한 종류의 다이어그램을 제공하고 있습니다. 또한, 생성된 다이어그램을 PNG, LaTeX, EPS, SVG 와 같은 이미지로 변환할 수

plantuml.com

 

Plant UML 에디터

제가 자주 사용하는 Plant UML 에디터는 여기에 있습니다.

history도 저장이 되어서 간단한 UML을 작성할때 사용합니다.

https://plantuml-editor.kkeisuke.dev/

 

PlantUML Editor

 

plantuml-editor.kkeisuke.dev

 

 

github

https://github.com/kkeisuke/plantuml-editor2

 

GitHub - kkeisuke/plantuml-editor2: PlantUML online demo client / Vue3 in Vite

PlantUML online demo client / Vue3 in Vite. Contribute to kkeisuke/plantuml-editor2 development by creating an account on GitHub.

github.com

github에도 소스코드 받아서 실행하는 법과 docker 이용하는 법이 잘 적혀있습니다.

저는 소스를 받아서 실행해 보려고 했는데 실패 했습니다. 그리고 docker를 이용해서 성공 했고요.

그래서 plantuml editor를 사용하는 것이 목적이라면 docker를 이용하는 방법을 추천 드립니다.

 

 

로컬에서 실행하는 방법 *** 핵심 ***

 

제가 테스트한 환경과 절차를 정리하면 다음과 같습니다.

 

PC: Macbook Air M1 

OS: MacOS

절차 : Docker 설치 -> colima 설치 -> colima 실행 -> docker image download -> docker image 실행

~/github $ brew install docker
~/github $ brew install colima


$colima start 

~/github $ colima start
INFO[0001] starting colima                              
INFO[0001] runtime: docker                              
INFO[0002] creating and starting ...                     context=vm
> Terminal is not available, proceeding without opening an editor
> Starting the instance "colima" with VM driver "qemu"
> QEMU binary "/opt/homebrew/bin/qemu-system-aarch64" seems properly signed with the "com.apple.security.hypervisor" entitlement
INFO[0097] provisioning ...                              context=docker
INFO[0097] starting ...                                  context=docker
INFO[0099] done                  


~/github $ Docker ps -a

///// plant uml 서버 image download
~/github $ docker pull plantuml/plantuml-server:jetty

///// plant uml 서버 실행
~/github $ docker run -d -p 4000:8080 plantuml/plantuml-server:jetty

 

docker desktop 말고 colima로 docker 실행 환경을 만들었고 그리고 나서 plantuml 서버 이미지를 다운로드 하고 실행 했습니다.

 

 

PlantUML 실행 화면

 

 

다들 설계도 잘하는 개발자가 되어 봐요~~

 

## 해피 코딩

 

반응형

요즘 프라모델 도색 하는 것에 빠져 지내다 보니, 이와 관련 조형등에 대한 내용들도 접하게 되네요.

 

[펌] https://kin.naver.com/qna/detail.nhn?d1id=3&dirId=31204&docId=56359878&qb=7Iuc67CU7Yi0IOugiOynhA==&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=T00%2B3wpySDCsstjZBCossssssXo-359426&sid=aT%2BcpKWcJRG1eWcR14CFIQ%3D%3D

 

 

에폭시퍼티라는 건프라 도색 이나 커스터마이징할떄 가끔 들어봤던 말이었는데요.

영상으로 만 종종 봤을뿐 어떤 특징들이 있는지는 몰랐습니다.

 

어떤 분이 잘 정리 해주셨길래 퍼왔습니다.

 

 

시바툴

 

레진 퍼티는 에폭시와 같이 주재와 경화제를 섞어서 반죽해서 사용하는 조형재료입니다. 

에폭시 처럼 상온에서 자연경화 하구요. 에폭시 보다 끈적임이 심하기 때문에 주로

굳힌후에 깍아내는 식으로 조형을 하게 됩니다. 

스컬피에 비해서는 에폭시와 시바툴의 강도는비교적 좋다고 볼수 있죠. 

다만 에폭시 퍼티나 시바툴에도 종류가 다양하기 때문에 조금씩 차이는 있다고 보시면 됩니다. 

그리고 이러한 조형용 재료들은 밀도가 꽤높은 편에 속하기 때문에 부피에 비해 어느정도 무게가 있습니다. 

보통의 플라스틱에 비해서는 무거운 편이라고 생각하시면 될겁니다. 

제를 할때는 주로 액상 레진(폴리우레탄)을 많이 사용합니다. 

레진의 경우 소프트 캐스팅을 할수 있기 때문에 비교적 형틀 제작비용이 적게 든다는 점이 장점이죠. 

소프트 캐스팅에 사용하는 형틀 재료는 주로 실리콘 종류입니다. 형틀이 부드럽기 때문에

원형의 몰드나 디테일이 뭉개짐없이 복제하는 것이 가능하죠. 실리콘 퍼티나

액상 실리콘을 이용하며, 복제 작업에 따라 다르긴 하지만 하나의 형틀에서 대략 20~30타정도 

가 원형을 크게 손상시키지 않고 복제할수 있는 적정 수량일겁니다. 그리고 이러한 방식은

레진킷을 제작하는 방법과도 동일합니다. 모형용 에폭시 퍼티의 공업용 버전이라고 보면 됩니다.

물리적 성질은 건조전에 에폭시 퍼티보다 더 무른 편입니다. 하지만 건조되고 나면 성질은 거의 비슷합니다.

(시바툴이 조금 더 부드러운 것 같습니다.) 주로 자동차 모형의 모크업등에 사용되는 재료지만

언젠가부터 모델러들의 손에서 놀아나기 시작한 재료로 원형 제작시에 사용되곤 합니다.

(어차피 자동차의 모크업도 모형을 만드는 작업과 비슷합니다. 축소모형이라는 측면과

작업 공정으로 보면 완전히 같은 작업입니다.)

 


에폭시퍼티 

주제와 경화제를 섞어서 경화시키면 레진같은 플라스틱 계열의 딱딱한 물질로 변하게 되는 제품이다. 캐릭터 인형같은 빚어서 만들어야 하는 경우에 사용하기 좋은 제품입니다. 건조되기 전의 물리적 성질은 찰흙보다 무르지만 굳고 나면 일반적인 레진 덩어리와 비슷합니다. 플라스틱퍼티에 비하면 수축은 전혀 없는편입니다. 하지만 약간의 수축은 있지만 한번에 커다란 덩어리를 만들고 건조시키는 정도가 아니라면 느끼지 못할 정도입니다.

 

 

 

핸디코트

헤라를 이용하여 퍼티작업을 합니다. 평평하게 또는 귀하만의 문양을 만드는거죠..
그런다음 1~2일 경과 후 에버그린을 칠하신다음 클리어우드로 마무리 하면 됩니다.

헤라로 퍼티작업을 잘 해야 하는데 이게 그리 만만한 작업이 아니거든요.
일단 핸드를 덜어낸 다음 물을 조금씩 혼합하여 반죽하여 미장하듯 퍼티작업을 하면 됩니다.
이건 어떻게 말로.. 글로 표현하기가 애매모호한 것으로 님께서 하시면서 터득해야 할 듯 하네요.

에버그린이나 클리어우드는 기냥 물을 조금씩 넣어가면서 뻑뻑하지 않게 칠하면 됩니다.

 

 

 

소프트 캐스팅과는 반대로 하드 캐스팅이라는 것도 있는데, 이것은 금형을 사용하는 복제 방식으로 

대부분의 인젝션 프라모델을 복제하는데 사용하는 방식입니다.

형틀의 재질이 금속이기 때문에 내구도가 높아서 대량 생산이 가능한 방식이죠. 

다만 금형 자체의 제작비용이 상당히 고가이기 때문에 취미로 제작하기는 힘든 방법입니다

 

 

 

포멕스랑 아이소핑크는 도저히 모르겠습니다...

 

'일상 > 키덜트 월드' 카테고리의 다른 글

그리핀 라이더  (0) 2021.06.01
Pinocchio (피노키오)  (0) 2021.06.01
Dwaf mercenary (드워프 같은 용병 아저씨)  (0) 2021.06.01
트롤 잡고 담배 태우는 드워프  (0) 2021.06.01
바바리안  (0) 2021.06.01
반응형

Pocket A

 
 
안녕하세요. 2024년 용띠해가 되었네요.
많은 일들이 잘 되길 빕니다.~
 

 
스터디는 원래 실전이 가장 좋은 방법이라고 하죠?, 저도 Flutter 스터디를 위해서 2가지 프로젝트를 예전부터 진행했었습니다.
하나는 게임을 한번 만들어보는 것이고, 하나는 집에서 가족들과 사용할 수 있는 애플리케이션을 만들어보는 거였는데요.
 
그중 하나인 Pocket A 라는 애플리케이션입니다.
https://play.google.com/store/apps/details?id=com.rjlife.pocketa

 

포켓 - Google Play 앱

할일을 기록하고 실천해보세요. 나의 루틴을 관리하고 , Chat GPT, Dall-E 로 멋진 라이프 스타일을 만들어 보세요.

play.google.com

 
 
 
 
이 애플리케이션은 "아내가 집에서 입는 옷을 어떻게 하면 쉽게 관리하고 매칭해서 입을까?"라는 질문에서 시작했습니다.

처음 아이디어가 나왔을때는, "사진찍어서 바로 올리고", "계절별 매칭도 해주고", "집에 있는 옷장이 한눈에 보이고" 듣기에 그럴듯해보이는 것 같았습니다. 프로젝트를 구상하기 시작한지 몇일 지나자 초기의 옷 정리를 위한 앱의 정체성과 니즈에 대해서 복잡한 고민을 하기 시작했습니다. "사진을 찍어봤는데 별로 안이쁜데?", "옷 매칭을 하려면 옷을 잘 찍어놔야하고 또 배경도 없애고, 모델도 필요한거 아닌가?", "옷을 종류별 계절별로 나눠보니 몇벌 안나오네?" 등등등... 뭔가 상상과 현실이 안맞는 그런 상황에서의 고민이었죠.

 

그러다 그 시점에 Chat GPT가 뜨면서 Chat GPT 앱이 되어버렸습니다. (^^;;  역시 제대로 된 기획이 없으니 산으로 가는.. 쿨럭)

 

그래서 이런 애플리케이션이 되었습니다. 
 

 
Dali-E 같은 경우는 원래 영어로 입력해야 이미지를 만들어주는데, 좀 불편해서 한글을 영어로 자동 번역해서 처리되도록 해봤습니다.
 
그리고 2024년을 기념하여, 새해 계획들을 많이 세우는데 사실 실천이 어렵죠... 
와이프의 생활패턴을 보니 계획 실천하는데 매일 Todo를 적고 하나씩 해나가는 것이 좀 인상적이었습니다.
(본인은 잊어먹지 않고 하려고 적는다고 한다고 하는데, 나이가 들고 보니 무척 좋은 습관인 것 같네요.)
 
 

한동안 따로 개선하지 않다가 드디어 할 일?? 이 생겼습니다. ^^
아무튼 저는 개발자이니 이것을 개발자스럽게 해결해 보고자 앱에 TODO 기능을 넣었습니다.
 
짜잔.
 

 
 
 

 
날짜 별로 할 일을 추가할 수 있습니다.
운동이나 약 먹기 같은 매일 하고자 하는 루틴의 경우에는 매일 할 일을 체크 해두면 매일 해야 할 일로 나옵니다.
그리고 할 일을 일정시간 동안 투자 해야 하는 경우라면 간혹 타이머가 필요한데, 그래서 타이머를 이렇게 만들어 놨습니다.
 
 
이렇게 해서 간단한 할 일 기능이 추가되었답니다.
+ 사용하다 보니, 이전할 일들 중에서 아직 완료하지 못한 것들을 어떻게 표현하면 좋을까? 고민하고 있는데 했는데 무작정 이전에 완료 안된 일들을 남겨 놓는 것도 아닌 것 같고, 이 부분은 좀 아이디어를 찾아봐야 할 것 같습니다.
 
 
 
 
#개발 이야기
 
Framework :  Flutter 3.16.0
주요 pub:

get: ^4.6.5
shared_preferences: ^2.0.15
intl: ^0.18.1
http: ^0.13.5
flutter_native_splash: ^2.2.19
flex_color_scheme: ^7.3.1
#animated_text_kit: 4.2.2
animated_text_kit:
git:
url: https://github.com/karzia/Animated-Text-Kit.git
package_info_plus: ^3.0.2
json_store: ^2.0.1
permission_handler: ^11.1.0
path_provider: ^2.0.14
upgrader: ^6.2.0
photo_view: ^0.14.0
flutter_staggered_grid_view: ^0.7.0
share_plus: ^7.2.1
equatable: ^2.0.5
flutter_bloc: ^8.1.2
image_picker: ^0.8.6+1
carousel_slider: ^4.2.1
url_launcher: ^6.1.10
# for objectbox (Database)
objectbox: ^2.3.1
objectbox_flutter_libs: any

easy_date_timeline: ^1.0.2
gap: ^3.0.1


flutter_speed_dial: ^3.0.5

 
 
animated_text_kit : intro(splash) 쪽이 너무 밋밋하여 뭔가 포인트를 주기 위해서 이용했습니다.
 - 생각보다 이쁘게 나와서 chat에서 waiting시에... 에 대한 animation에도 사용했는데요. 높이 조절이 잘 안 되고 너무 튀어서 customizing을 따로 했습니다.
 
objectbox: todo를 추가하다 보니 database가 필요해져서 nosql로 간단하게 사용할 것을 찾다가 이를 이용했습니다.
 - 설명에는 경량이고 추후 cloud sync 연동도 가능하다고 되어있어서 사용해 보게 되었습니다.
 
package_info_plus: package version 정보를 보여주기 위해서 사용
flex_color_scheme: 유튜브에서 theme을 쉽게 사용할 수 있다고 하여 한번 사용해 봤습니다.
 - 생각보다 이쁘게 안 나와서 실망 ㅠ_ㅠ , 역시 디자이너의 손길이 필요합니다.
upgrader: 스토어에 최신 버전이 있는지를 확인할 수 있는 기능이 필요해서 사용하였습니다.
 -  기능상으로 보면, google play store가 아니라 개인 서버에 package 정보를 올려서 사용할 수 도 있다고 되어있습니다.
 -  나중에 store에 올리지 않고 webstite에서 관리를 하려면 이를 이용하는 것도 좋은 방법일 것 같더군요.
 
 
 
해피코딩!!

반응형

안녕하세요.

 

SingleChildScrollView 를 이용해서 아이템들을 스크롤 하도록 ui를 구성하려고 할때 간혹 ListView 나 grid view 같은 항목을 추가 해야 할 때가 있습니다.

 

ListView나 GridView 같은 경우에는 크기를 지정해야 하는데, 이렇게 되면 2중으로 scroll되게 됩니다.

(물론 이런 UI를 원하는 경우도 있지만, 때로는 전체가 하나의 view 처럼 scroll되기를 기대하는 경우도 있습니다.)

 

하나의 View 처럼 스크롤 되게 하려면 ListView의 속성을 변경해줘야 합니다.

 

[Widget layout]


Scaffold
 - SingleChildScrollView


     - Column


         - CalendarTimeline

         - ListView

  - BottomNavigationBar



 

 

ListView를 container로 감싸고, size를 width만 적용했습니다.

Container(
    width: double.maxFinite,
    child: ListView(
      primary: false,
      shrinkWrap: true,
        children:todoItems(controller.todos)
    ),
  ),

 

그리고 나서 ListView에 primary 를 false 로 적용합니다.

shrinkWrap을 true로 적용합니다.

 

shrinkWrap은 item 개수만큼 크기를 적용해주는 기능입니다.

그래서 item 개수가 작은때는 좁게, 많은때는 넓게 적용됩니다.

 

 

SingleChildScrollView(
        child: Column(
          children: [
            Gap(W(30)),
            Stack(
              children: [
                CalendarTimeline(
                  initialDate: selectedDay,
                  firstDate: DateTime(2022, 1, 15),
                  lastDate: DateTime(today.year,today.month,today.day+15),
                  onDateSelected: (date){
                    dprint(date);
                    setState(() {
                      selectedDay = date;
                      controller.setDate(date);
                    });

                  },
                  leftMargin: 20,
                  monthColor: Colors.blueGrey,
                  dayColor: Colors.teal[600],
                  activeDayColor: Colors.white,
                  activeBackgroundDayColor: Colors.redAccent[100],
                  dotsColor: ResColors.functionalRed,
                  selectableDayPredicate: (date) => !date.isAfter(today),
                  locale: Get.locale?.languageCode??AppConfig.DEFAULT_LOCALE.languageCode, //CHECK: Must use language code not locale
                  //showYears: true,
                  //shrink: true,
                ),
                  AnimatedOpacity(
                      opacity: (selectedDay != today)?1.0:0.0,
                      duration: 200.milliseconds,
                      child: renderTodayButton())
              ],
            ),
            Obx(()=> DefaultTextStyle(
              style:TextStyle(fontFamily: "꽃내음"),
              child: Container(
                width: double.maxFinite,
                child: ListView(
                  primary: false,
                  shrinkWrap: true,
                    children:todoItems(controller.todos)
                ),
              ),
            )),
          ],
        ),),

 

 

 

해피코딩 !!!

반응형

안녕하세요.

 

플러터로 android 용 앱을 개발하다가 앱이 좀 괜찮으면 iOS로 확장하고 싶은 욕구가 생기겠죠?

그런데 처음부터 iOS를 염두해두고 프로젝트를 만들지 않았다면, 확장을 어떻게 해야 하나 할겁니다.

 

간단하게 확장하는 방법 정리 해봤습니다.

 

 

먼저 빌드할 플랫폼을 선택합니다.

 

terminal에서 다음과 같이 입력하면 되는데요.

 $ flutter config --enable-<platform>

 

ios 의 경우에는  flutter config --enable-ios 라고 입력 합니다.

 

그리고 나서 프로젝트를 재 생성 합니다.

$ flutter create .

을 입력하면 다시 프로젝트가 재 생성됩니다.

 

 

 

사용 예 )

~/$ flutter config --enable-ios
Setting "enable-ios" value to "true".

You may need to restart any open editors for them to read new settings.


~/github/arbot_care (karzia)$ flutter create .
⣟

Recreating project ....
  windows/runner/flutter_window.cpp (created)
  windows/runner/utils.h (created)
  windows/runner/utils.cpp (created)
  windows/runner/runner.exe.manifest (created)
  windows/runner/CMakeLists.txt (created)
  windows/runner/win32_window.h (created)
  windows/runner/Runner.rc (created)
  windows/runner/win32_window.cpp (created)
  windows/runner/resources/app_icon.ico (created)
  windows/runner/main.cpp (created)
  windows/runner/resource.h (created)
  windows/runner/flutter_window.h (created)
  windows/flutter/CMakeLists.txt (created)
  windows/.gitignore (created)
  windows/CMakeLists.txt (created)
  arbot_care.iml (created)
  web/favicon.png (created)
  web/index.html (created)
  web/manifest.json (created)
  web/icons/Icon-maskable-512.png (created)
  web/icons/Icon-192.png (created)
  web/icons/Icon-maskable-192.png (created)
  web/icons/Icon-512.png (created)
  android/app/src/main/res/mipmap-mdpi/ic_launcher.png (created)
  android/app/src/main/res/mipmap-hdpi/ic_launcher.png (created)
  android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (created)
  android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (created)
  android/app/src/main/res/mipmap-xhdpi/ic_launcher.png (created)
  android/app/src/main/kotlin/io/netplant/arbot_care/MainActivity.kt (created)
  android/arbot_care_android.iml (created)
  ios/RunnerTests/RunnerTests.swift (created)
  .idea/runConfigurations/main_dart.xml (created)
  .idea/libraries/KotlinJavaRuntime.xml (created)
  linux/main.cc (created)
  linux/my_application.h (created)
  linux/my_application.cc (created)
  linux/flutter/CMakeLists.txt (created)
  linux/.gitignore (created)
  linux/CMakeLists.txt (created)
Resolving dependencies... 
Got dependencies.
Wrote 42 files.

All done!
You can find general documentation for Flutter at: https://docs.flutter.dev/
Detailed API documentation is available at: https://api.flutter.dev/
If you prefer video documentation, consider: https://www.youtube.com/c/flutterdev

 

 

참고로 지원 되는 플랫폼 목록은 다음과 같습니다.

 

--enable-web Enable Flutter for web. This setting will take effect on the master, dev, beta, and stable channels
--no-enable-web Disable Flutter for web. This setting will take effect on the master, dev, beta, and stable channels
--enable-linux-desktop Enable beta-quality support for desktop on Linux. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--no-enable-linux-desktop Disable beta-quality support for desktop on Linux. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--enable-macos-desktop Enable beta-quality support for desktop on macOS. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--no-enable-macos-desktop Disable beta-quality support for desktop on macOS. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--enable-windows-desktop Enable beta-quality support for desktop on Windows. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--no-enable-windows-desktop Disable beta-quality support for desktop on Windows. This setting will take effect on the master, dev, beta, and stable channels. Newer beta versions are available on the beta channel
--enable-android Enable Flutter for Android. This setting will take effect on the master, dev, beta, and stable channels
--no-enable-android Disable Flutter for Android. This setting will take effect on the master, dev, beta, and stable channels
--enable-ios Enable Flutter for iOS. This setting will take effect on the master, dev, beta, and stable channels
--no-enable-ios Disable Flutter for iOS. This setting will take effect on the master, dev, beta, and stable channels
--enable-fuchsia Enable Flutter for Fuchsia. This setting will take effect on the master channel
--no-enable-fuchsia Disable Flutter for Fuchsia. This setting will take effect on the master channel

 

enable 시킬때는 --enable-<platform> 을 사용하고 disable 시킬때는 --no-enable-<platform> 을 이용합니다.

(disable이 아니네요 ^^;;;)

 

 

 

해피코딩 !!

반응형

안녕하세요.

 

코딩을 하다보면 종종 print를 이용해서 실행(run)창에 로그를 출력하는 경우들이 종종 발생하게 되는데요.

 

이럴때 file 정보와 line 정보가 안보여서 불편할때가 있습니다.

 

요럴때 사용할 수 있는 팁입니다.!!

 

import 'package:flutter/foundation.dart';

dprint(message,{int level=1}){

  if(kDebugMode || level >1) {
    var a = StackTrace.current;
    final regexCodeLine = RegExp(r" (\(.*\))$");
      print("$message${regexCodeLine.stringMatch(a.toString().split("\n")[level])}");
  }
}

 

 

<사용 예제>

  @override
  Widget build(BuildContext context) {

    DatabaseProvider().initMemoryDb();

    dprint("context:width:${context.width} , height:${context.height}");
    
    :

 

 

android studio의 실행창(run) 에 다음과 같이 출력이 됩니다.

그리고 클릭하면 해당 위치로 이동이 되고요.

 

<출력 결과>

I/flutter (22490): context:width:411.4 , height:866.285 (package:sample/ui/IntroPage.dart:32:5)

 

 

!!! 해피 코딩

+ Recent posts